任务一
#include<stdio.h> char score_to_grade(int score) ; int main() { int score; char grade; while(scanf("%d", &score) != EOF) { grade = score_to_grade(score) ; printf("分数: %d,等级: %c\n\n",score,grade); } return 0; } char score_to_grade(int score){ char ans; switch(score/10) { case 10: ans = 'A';break; case 9: ans = 'B';break; case 8: ans = 'C';break; case 7: ans = 'D';break; case 6: ans = 'E'; } return ans; }

功能:根据传入的整数分数,返还已对应的等级A,B,C,D,E
形参类型:int
返回值类型:char
任务二
#include <stdio.h> int sum_digits(int n); int main() { int n; int ans; while(printf("Enter n:"),scanf("%d",&n) != EOF) { ans =sum_digits(n); } return 0; } int sum_digits(int n) { int ans=0; while(n != 0) { ans += n%10; n/=10; } return ans; }

问题1:计算一个整数各位数字之和
问题2:能 原方式是迭代思维,新方式是递归思维
任务三
#include <stdio.h> int power(int x, int n); int main() { int x, n; int ans; while(printf("Enter x and n: "), scanf("%d%d", &x, &n) != EOF) { ans = power(x, n); printf("n = %d, ans = %d\n\n", n, ans); } return 0; } int power(int x, int n) { int t; if(n == 0) return 1; else if(n % 2) return x * power(x, n-1); else { t = power(x, n/2); return t*t; } }

问题一:power功能是计算x的n次幂
问题二:递归函数

任务四
#include<stdio.h> int is_prime(int n) ; int main(){int n; int count=0; printf("100以内的孪生素数:\n"); for(n=1;n<=100;n++) {if(is_prime(n)&&is_prime(n+2)){ printf("%d %d\n",n,n+2); count++;} } printf("100以内的孪生素数共有%d个\n",count); getchar(); return 0;} int is_prime(int n){int i; if(n<=1)return 0; if(n==2)return 1; if(n>=3)for(i=2;i<n;++i) {if(n%i==0)return 0;} return 1;}

任务五
#include <stdio.h> int func(int n, int m); int main() { int n, m; int ans; while(scanf("%d%d", &n, &m) != EOF) { ans = func(n, m); printf("n = %d, m = %d, ans = %d\n\n", n, m, ans); } return 0; } int func(int n, int m){int x=1,y=1,z=1,i; for(i=1;i<=n;++i)x*=i; for(i=1;i<=m;++i)y*=i; for(i=1;i<=n-m;++i)z*=i; return x/(y*z);}
#include <stdio.h>
int func(int n, int m);
int main() {
int n, m;
int ans;
while(scanf("%d%d", &n, &m) != EOF) {
ans = func(n, m);
printf("n = %d, m = %d, ans = %d\n\n", n, m, ans);
}
return 0;
}
int func(int n, int m){if(m<0||m>n)return 0;
if(m==0||m==n)return 1;
return func(n-1,m)+func(n-1,m-1);}

任务六
#include <stdio.h> int gcd(int a, int b, int c); int main() { int a, b, c, ans; scanf("%d %d %d", &a, &b, &c); ans = gcd(a, b, c); printf("%d\n", ans); return 0; } int gcd(int a, int b, int c) { int min = a; if (b < min) min = b; if (c < min) min = c; for (int i = min; i >= 1; i--) if (a % i == 0 && b % i == 0 && c % i == 0) return i; return 1; }

任务七
#include <stdio.h> #include <stdlib.h> void print_charman(int n); int main() { int n; printf("Enter n: "); scanf("%d", &n); print_charman(n); // 函数调用 system("pause"); return 0; } void print_charman(int n){int i,k,j; for(i=0;i<n;++i){ for(j=0;j<i;++j)printf(" \t"); for(k=0;k<n*2-1-2*i;++k){printf(" O\t");} printf("\n"); for(j=0;j<i;++j)printf(" \t"); for(k=0;k<n*2-1-2*i;++k){printf("<H>\t");} printf("\n"); for(j=0;j<i;++j)printf(" \t"); for(k=0;k<n*2-1-2*i;++k){printf("I I\t");} printf("\n");}}


