实验3

 实验结论

实验任务1

源代码

 1 #include <stdio.h>
 2 char score_to_grade(int score);
 3 int main(){
 4    int score;
 5    char grade;
 6    while(scanf("%d",&score)!=EOF){
 7         grade = score_to_grade(score);
 8         printf("分数:%d,等级:%c\n\n",score,grade);
 9 
10    }
11    return 0;
12 }
13 
14 char score_to_grade(int score){
15   char ans;
16   switch(score/10){
17   case 10:
18   case 9: ans='A';break;
19   case 8: ans='B';break;
20   case 7: ans='C';break;
21   case 6: ans='D';break;
22   default:ans='E';
23 
24   }
25   return ans;
26 }

 运行结果截图

1

回答问题:

1.根据输入分数值判断等级并输出。形参类型为int,返回值类型是char

2.swich判断case无法输出,全部运行至default输出E,达不到函数调用目的;一次判断中ans被多次赋值,占用较多存储空间,运行慢。

 实验任务2 

源代码

 1 #include <stdio.h>
 2 int sum_digits(int n);
 3 int main(){
 4     int n;
 5     int ans;
 6     while(printf("Enter n:"),scanf("%d",&n)!=EOF){
 7         ans=sum_digits(n);
 8         printf("n=%d,ans=%d\n\n",n,ans);
 9 
10 }
11     return 0;
12 }
13 int sum_digits(int n){
14     int ans=0;
15     while(n!=0){
16          ans+=n%10;
17          n/=10;
18     }
19     return ans;
20 }

运行结果截图

2

回答问题:

1.输出n的各位数之和

2.同样能实现;第一种采用迭代,第二种采用递归。

实验任务3

源代码

 1 #include <stdio.h>
 2 int pow(int x,int n);
 3 int main(){
 4 int x,n;
 5 int ans;
 6 while(printf("Enter xand n:"),scanf("%d%d",&x,&n)!=EOF){
 7      ans=power(x,n);
 8      printf("n=%d,ans=%d\n\n",n,ans);
 9 }
10 return 0;
11 }
12 int power(int x,int n){
13   int t;
14   if(n==0)
15       return 1;
16   else if(n%2)
17       return x*power(x,n-1);
18   else{
19   t=power(x,n/2);
20   return t*t;
21   }
22 }

运行结果截图

 3

回答问题:

1.运行输出x^n

2.是;1

实验任务4

源代码

 1 #include <stdio.h>
 2 int is_prime(int i);
 3 int main(){
 4     int i=1,n=0;
 5     int ans;
 6     printf("100以内的孪生素数:\n");
 7     while(i<=98){
 8        ans= (is_prime(i)&&is_prime(i+2));
 9        if(ans==1){
10        printf("%d %d\n",i,i+2);
11        ++n;
12        }
13        ++i;
14     }
15     printf("100以内的孪生素数共有%d个\n",n);
16     system("pause");
17     return 0;
18 }
19 int is_prime(int i){
20     int a;
21     if(i<=1)
22         return 0;
23     for(a=2;a<i;a++){
24         if(i%a==0)
25             return 0;
26     }return 1;
27 }

运行结果截图

4

实验任务5

迭代源代码

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

运行结果截图

5.1

递归源代码

 1 #include <stdio.h>
 2 int func(int n,int m);
 3 int main(){
 4     int n,m;
 5     int ans;
 6     while(scanf("%d%d",&n,&m)!=EOF){
 7        ans=func(n,m);
 8        printf("n=%d,m=%d,ans=%d\n\n",n,m,ans);
 9     }
10     system("pause");
11     return 0;
12 }
13 int func(int n,int m){
14     if(m==0||m==n)
15         return 1;
16     if(n<m)
17         return 0;
18     return func(n-1,m)+func(n-1,m-1);
19 }

运行结果截图

5.2

实验任务6

源代码

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

运行结果截图

6

实验任务7

源代码

 

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

运行结果截图

7.1

7.2

 

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

 

posted @ 2025-10-24 22:11  wsh12345  阅读(4)  评论(0)    收藏  举报