目录
7、计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
1.图案问题
#include <stdio.h> int main() { int n = 0; while (scanf("%d",&n) != EOF) { for (int i = 0; i < n; i++) { printf("*"); } printf("\n"); } return 0; }
2、时分秒转换
#include <stdio.h> int main() { int sec = 0, s, m, h; scanf("%d", &sec); h = sec / 60 / 60; m = sec / 60 % 60; s = sec % 60; printf("%d %d %d\n", h, m, s); return 0; }
3、打印1-100之间所有3的倍数的数字
#include <stdio.h> int main() { for (int i = 1; i <= 100; i++) { if (i % 3 == 0) { printf("%d ", i); } } return 0; }
4、打印100~200之间的素数
#include <stdio.h> int main() { for (int i = 100; i <= 200; i++) { for (int j = 2; j < i; j++) { if (i % j == 0) { break; } if (j == i-1) { printf("%d ", i); } } } return 0; }
5、给定两个数,求这两个数的最大公约数
#include <stdio.h> int main() { int a, b; scanf("%d %d", &a, &b); int c = a % b; while (c) { a = b; b = c; c = a % b; } printf("%d\n", b); return 0; }
6、在屏幕上输出9*9乘法口诀表
#include <stdio.h> int main() { for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { printf("%d*%d=%d\t", j, i, i * j); } printf("\n"); } return 0; }
7、计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
#include <stdio.h> int main() { int flag = 1; double sum = 0.0; for (int i = 1; i <= 100; i++) { sum += flag * 1.0 / i; flag *= -1; } printf("%.2f\n", sum); return 0; }
8、二分查找
#include <stdio.h> int binary_search(int* arr, int sz,int key) { int left = 0; int right = sz - 1; while (left<=right) { int mid = left + (right - left) / 2; if (arr[mid] > key) { right = mid - 1; } else if (arr[mid] < key) { left = mid + 1; } else { return mid; } } } int main() { int arr[] = { 1,2,3,4,5,6,7 }; int key = 5; int sz = sizeof(arr) / sizeof(arr[0]); int ret = binary_search(arr, sz,key); printf("下标为%d\n", ret); return 0; }
9、交换两个整数
#include <stdio.h> void swap(int* pa, int* pb) { int tmp = *pa; *pa = *pb; *pb = tmp; } int main() { int a, b; scanf("%d %d", &a, &b); swap(&a, &b); printf("%d %d\n", a, b); return 0; }
10、strlen的模拟(递归实现)
#include <stdio.h> int my_strlen(char* str) { if (*str == '\0') return 0; else return 1 + my_strlen(str + 1); } int main() { char arr[] = "abcdef"; printf("%d\n", my_strlen(arr)); return 0; }
11、递归方式实现打印一个整数的每一位
#include <stdio.h> Print(int a) { if (a > 9) { Print(a/10); } printf("%d ", a%10); } int main() { int a = 1234; Print(a); return 0; }
12、计算斐波那契数
#include <stdio.h> int fib(int a) { if (a == 1 || a == 2) { return 1; } return fib(a - 1) + fib(a - 2); } int main() { int a = 0; scanf("%d", &a); printf("%d\n", fib(a)); return 0; }
13、字符串逆序(递归/非递归实现)
递归:
#include <stdio.h> #include <string.h> void reverse(char* arr) { int len = strlen(arr); char* tmp = *arr; *arr = *(arr + len - 1); *(arr + len - 1) = '\0'; if (strlen(arr + 1) >= 2) { reverse(arr + 1); } *(arr + len - 1) = tmp; } int main() { char arr[] = "abcdef"; reverse(arr); printf("%s\n", arr); return 0; }<