首页 > 其他分享 >实验三

实验三

时间:2024-10-25 22:33:35浏览次数:3  
标签:return int ans char 实验 printf include

实验任务1

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

问题1

该函数的作用为将不同分数段的分数转化为字母等级,90到100为A,80到90为B,70到80为C,60到70为D,60分以下为E

形参类型为整形,返回类型为字符型

问题2

有问题,第一个问题是A,B,C,D字符应该用单引号,

第二个问题是没有执行打破选择分支的break语句,完成第一次选择后会继续向下执行。

 

实验任务2

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

问题1

功能为求n各位数之和。

问题2

可以实现,第一种实现方法为迭代直接进行每一位的取余求和;第二种,即修改后的函数利用递归,将问题转化为低阶问题,当n<10时直接返回n,并且此时递归有出口。所以可以实现。

 

实验任务3

 1 #include <stdio.h>
 2 int power(int x, int n);
 3 int main() {
 4     int x, n;
 5     int ans;
 6     while(printf("Enter x and 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 }

问题1

输出x的n次幂

问题2

 

实验任务4

 1 #include<stdio.h>
 2 int isprime(int n);
 3 int main()
 4 {
 5     int m,cnt=0;
 6     for(m=3;m<100;m++)
 7     {
 8     
 9     if(isprime(m+1)&&isprime(m-1))
10     {
11         cnt++;
12         printf("%d %d\n",m-1,m+1);
13         
14     }
15    }
16    printf("100以内孪生数共有%d个",cnt);
17    return 0;
18 }
19 
20 int isprime(int n)
21 {
22     int ret=1;
23     int i;
24     for(i=2;i<n;i++)
25     {
26         if(n%i==0)
27         {
28             ret=0;
29             break;
30         }
31         
32     }
33     return ret;
34 }
35     

 

实验任务5

 

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 void hanoi(unsigned int n,char from,char temp,char to);
 4 void moveplate(unsigned int n,char from,char to);
 5 int cnt=0;
 6 int main()
 7 {
 8     unsigned int n;
 9     while(scanf("%u",&n)!=EOF)
10     {
11     hanoi(n,'A','B','C');
12     printf("移动次数%d\n",cnt);
13     cnt=0;
14     }
15     return 0;
16     
17 }
18 
19 void hanoi(unsigned int n,char from,char temp,char to)
20 {
21     if(n==1)
22     moveplate(n,from,to);
23     else
24     {
25     hanoi(n-1,from,to,temp);
26     moveplate(n,from,to);
27     hanoi(n-1,temp,from,to);    
28         
29     }
30     
31 }
32 
33 void moveplate(unsigned int n,char from,char to)
34 {   
35     printf("%u:%c-->%c\n",n,from,to);
36     cnt+=1;
37 }

 实验任务6

 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 {
18     int a=1,b=1;
19     int c,d;
20     if(m==0)
21         return 1;
22         else if(n<m)
23         return 0;
24     for(d=1;d<=m;d++)
25     {
26         b=b*d;
27     }
28     for(c=n;c>=n-m+1;c--)
29     {
30         a=a*c;
31     }
32         return a/b;
33     
34 }
 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 {
18     if(m==0)
19     return 1;
20     else if(n<m)
21     return 0;
22     else
23     return(func(n-1, m)+func(n-1,m-1));
24     
25 }

实验任务7

 

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 void print_charman(int n);
 5 
 6 int main() {
 7     int n;
 8 
 9     printf("Enter n: ");
10     scanf("%d", &n);
11     print_charman(n);        
12     return 0;
13 }
14 
15 void print_charman(int n)
16 {   
17     int i,t,cnt=1;
18     for(cnt=n;cnt>=1;cnt--)
19     {
20         for(t=1;t<=(n-cnt);t++)
21         {
22         printf("\t");    
23         }
24         for(i=2*cnt-1;i>=1;i--)
25         {
26             printf(" 0 \t");
27         }
28         for(t=1;t<=(n-cnt);t++)
29         {
30         printf("\t");    
31         }
32         printf("\n");
33         
34         for(t=1;t<=(n-cnt);t++)
35         {
36         printf("\t");    
37         }
38         for(i=2*cnt-1;i>=1;i--)
39         {
40             printf("<H>\t");
41         }
42         for(t=1;t<=(n-cnt);t++)
43         {
44         printf("\t");    
45         }
46         printf("\n");
47         
48       for(t=1;t<=(n-cnt);t++)
49         {
50         printf("\t");    
51         }
52         for(i=2*cnt-1;i>=1;i--)
53         {
54             printf("I I\t");
55         }
56         for(t=1;t<=(n-cnt);t++)
57         {
58         printf("\t");    
59         }
60         printf("\n");
61         
62     }
63 }

 

标签:return,int,ans,char,实验,printf,include
From: https://www.cnblogs.com/88888888whq/p/18497833

相关文章

  • OOP实验二
    任务1源码:1#pragmaonce23#include<string>45//类T:声明6classT{7//对象属性、方法8public:9T(intx=0,inty=0);//普通构造函数10T(constT&t);//复制构造函数11T(T&&t);//移动构造函数12~T();......
  • 实验3
    任务1代码#include<stdio.h>charscore_to_grade(intscore);intmain(){intscore;chargrade;while(scanf("%d",&score)!=EOF){grade=score_to_grade(score);printf("分数:%d,等级:%c\n\n",score,grade);......
  • python+flask框架的基于微信小程序的高校实验室考勤管理系统的设计与实现前端8(开题+
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景关于高校实验室考勤管理问题的研究,现有研究主要集中在传统考勤系统的设计与实现上,如基于RFID、指纹识别等技术。然而,随着移动互联网技术的......
  • 实验三
    task11#include<stdio.h>2chargrade(intscore)3{4chara;5switch(score/10)6{7case10:8case9:a='A';break;9case8:a='B';break;10case7:a='C';b......
  • 实验三
    实验11#include<stdio.h>2charscore_to_grade(intscore); //函数声明3intmain(){4  intscore;5  chargrade;6  while(scanf("%d",&score)!=EOF){7    grade=score_to_grade(score); //函数调用8    printf("分数:%d,......
  • 实验6-2 英文字母替换加密(大小写转换+后移1位)
     ......
  • 实验3
    实验任务1:1intmain(){2intscore;3chargrade;45while(scanf("%d",&score)!=EOF){6grade=score_to_grade(score);7printf("分数:%d,等级:%c\n\n",score,grade);89}10return......
  • 实验3
    task.1代码:#include<stdio.h>#include<stdlib.h>#include<math.h>charscore_to_grade(intx);intmain(){intscore;chargrade;while(scanf("%d",&score)!=EOF){grade=score_to_grade(score);......
  • 实验三
    任务一源代码1#include<stdio.h>2charscore_to_grade(intscore);3intmain(){4intscore;5chargrade;6while(scanf("%d",&score)!=EOF){7grade=score_to_grade(score);8printf("分数:%d,等级:%c\......
  • 实验3
    任务11#include<stdio.h>23charscore_to_grade(intscore);45intmain(){6intscore;7chargrade;89while(scanf("%d",&score)!=EOF){10grade=score_to_grade(score);11printf(&......