实验三
1.(1)将输入的数转为等级,形参类型int,返回值类型char
(2)没有break会让输入一个数后有多值输出,如输入就是会从A输出然后输出B直至到E
2.(1)计算出输入的这个数的各位数之和
(2)能,原函数是使用循环迭代思维,提取各位数字累加。后一种是递归思维,当前位数字 + 剩余数字的各位和
3.(1)计算x的n次幂
(2)是,power(x,n)=1,n=0
=x*power(x,n-1),n为奇数
=(power(x,n/2))^2,n为偶数
1 #include <stdio.h> 2 int is_prime(int n); 3 int main() { 4 int count = 0; 5 printf("100以内的孪生素数:\n"); 6 for (int n = 2; n + 2 <= 100; n++) { 7 if (is_prime(n) && is_prime(n + 2)) { 8 printf("%d %d\n", n, n + 2); 9 count++; 10 } 11 } 12 printf("100以内的孪生素数共有%d个.\n", count); 13 return 0; 14 } 15 int is_prime(int n) { 16 if (n <= 1) { 17 return 0; 18 } 19 for (int i = 2; i * i <= n; i++) { 20 if (n % i == 0) { 21 return 0; 22 } 23 } 24 return 1; 25 }

1 #include <stdio.h> 2 int func(int n, int m); // 函数声明 3 4 int main() { 5 int n, m; 6 int ans; 7 8 while (scanf("%d%d", &n, &m) != EOF) { 9 ans = func(n, m); // 函数调用 10 printf("n = %d, m = %d, ans = %d\n\n", n, m, ans); 11 } 12 13 return 0; 14 } 15 16 int func(int n, int m) { 17 if (m < 0 || m > n) return 0; 18 if (m == 0 || m == n) return 1; 19 if (m > n - m) m = n - m; 20 int result = 1; 21 for (int i = 1; i <= m; i++) { 22 result = result * (n - m + i) / i; 23 } 24 return result; 25 }

1 #include <stdio.h> 2 int func(int n, int m); // 函数声明 3 4 int main() { 5 int n, m; 6 int ans; 7 8 while (scanf("%d%d", &n, &m) != EOF) { 9 ans = func(n, m); // 函数调用 10 printf("n = %d, m = %d, ans = %d\n\n", n, m, ans); 11 } 12 13 return 0; 14 } 15 16 int func(int n, int m) { 17 if (m < 0 || m > n) return 0; 18 if (m == 0 || m == n) return 1; 19 return func(n - 1, m) + func(n - 1, m - 1); 20 }
1 #include <stdio.h> 2 3 // 函数声明 4 int gcd(int a, int b, int c); 5 6 int main() { 7 int a, b, c; 8 int ans; 9 10 while (scanf("%d%d%d", &a, &b, &c) != EOF) { 11 ans = gcd(a, b, c); // 函数调用 12 printf("最大公约数:%d\n\n", ans); 13 } 14 15 return 0; 16 } 17 int gcd(int a, int b, int c) { 18 int min = a; 19 if (b < min) min = b; 20 if (c < min) min = c; 21 for (int i = min; i >= 1; i--) { 22 if (a % i == 0 && b % i == 0 && c % i == 0) { 23 return i; 24 } 25 } 26 return 1; 27 }

1 #include <stdio.h> 2 #include <stdlib.h> 3 4 void print_charman(int); 5 6 int main() { 7 int n; 8 9 printf("Enter n: "); 10 scanf("%d", &n); 11 print_charman(n); 12 13 return 0; 14 } 15 16 void print_charman(int n) { 17 int i, j, k; 18 for (j = n; j > 0; j--) 19 { 20 for (k = 0; k < n - j; k++) 21 printf("\t"); 22 for (i = 0; i < j * 2 - 1; i++) 23 printf(" O \t"); 24 printf("\n"); 25 for (k = 0; k < n - j; k++) 26 printf("\t"); 27 for (i = 0; i < j * 2 - 1; i++) 28 printf("<H>\t"); 29 printf("\n"); 30 for (k = 0; k < n - j; k++) 31 printf("\t"); 32 for (i = 0; i < j * 2 - 1; i++) 33 printf("I I\t"); 34 printf("\n"); 35 } 36 }

浙公网安备 33010602011771号