首页 > 其他分享 >实验3

实验3

时间:2024-10-29 13:58:56浏览次数:5  
标签:10 return int ans char 实验 printf

任务1

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

1.将分数整除10,得到等第ABCDE;形式参数类型是int;返回值类型是char
2.有问题,应使用单引号而不是双引,且分支后无break,会继续执行下面的分支,最终输出E。
任务2

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

1.取出n的每一位数并相加。
2.能,第一种方式是迭代,第二种是递归。
任务3

 1 #include <stdio.h>
 2 
 3 int power(int x, int n);    // 函数声明
 4 
 5 int main() {
 6     int x, n;
 7     int ans;
 8 
 9     while(printf("Enter x and n: "), scanf("%d%d", &x, &n) != EOF) {
10         ans = power(x, n);  // 函数调用
11         printf("n = %d, ans = %d\n\n", n, ans);
12     }
13     
14     return 0;
15 }
16 
17 // 函数定义
18 int power(int x, int n) {
19     int t;
20 
21     if(n == 0)
22         return 1;
23     else if(n % 2)
24         return x * power(x, n-1);
25     else {
26         t = power(x, n/2);
27         return t*t;
28     }
29 }


1.计算x的n次方。

2.是。

(1)n=0时,x^n=1
(2)n为奇数时,ans=x*x^(n-1)
(3)n为偶数时,ans=x^(n/2)*x^(n/2)
任务4

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

任务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 i=0;
 6 int main(){
 7     unsigned int n;  
 8     
 9     while(scanf("%u",&n)!=EOF){
10     
11     hanoi(n,'A','B','C');
12     printf("一共移动了%d次\n",i);
13                   
14     printf("\n");
15     }
16     
17     return 0;
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 void moveplate(unsigned int n, char from, char to)
32 {
33      printf("%u:%c--> %c \n", n, from, to);
34      i+= 1;
35 
36 }

任务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 int func(int n, int m)
16 {
17     int ans=1,i=1;
18     for(i=n;i>=(n-m+1);i--)
19         ans*=i;
20     for(i=1;i<=m;i++)
21         ans/=i;
22     return ans;
23 }

递归:

 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 int func(int n, int m)
16 {
17     if(m==0||n==m)
18         return 1;
19     if(m>n)
20         return 0;
21     return func(n-1,m)+func(n-1,m-1);
22 }

任务7

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

 

 

 

 

标签:10,return,int,ans,char,实验,printf
From: https://www.cnblogs.com/firefly21/p/18497758

相关文章

  • HNU-操作系统实验lab6-2022级
    实验目的任务调度是操作系统的核心功能之一。UniProton实现的是一个单进程支持多线程的操作系统。在UniProton中,一个任务表示一个线程。UniProton中的任务为抢占式调度机制,而非时间片轮转调度方式。高优先级的任务可打断低优先级任务,低优先级任务必须在高优先级任务挂起或......
  • 实验3
    task1#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",s......
  • 实验2 类与对象
    实验任务一t.h1//类T:声明2classT{3//对象属性、方法4public:5T(intx=0,inty=0);//普通构造函数6T(constT&t);//复制构造函数7T(T&&t);//移动构造函数8~T();//析构函数910voidadj......
  • 实验3
    任务1:源代码:1#include<stdio.h>2charscore_to_grade(intscore);3intmain(){4intscore;5chargrade;67while(scanf("%d",&score)!=EOF){8grade=score_to_grade(score);9printf("分数:%d......
  • 实验3
    任务11#include<stdio.h>2charscore_to_grade(intscore);3intmain()4{5intscore;6chargrade;7while(scanf("%d",&score)!=EOF){8grade=score_to_grade(score);9printf("分数:%d,等级;%c\n\n&quo......
  • 实验3
    task1源代码:#include<stdio.h>charscore_to_grade(intscore);//函数声明intmain(){intscore;chargrade;while(scanf("%d",&score)!=EOF){grade=score_to_grade(score);//函数调用printf("分数:%d,......
  • 实验2
    实验任务1:实验代码:t.h:1#pragmaonce23#include<string>45//类T:声明6classT{7//对象属性、方法8public:9T(intx=0,inty=0);//普通构造函数10T(constT&t);//复制构造函数11T(T&&t);//移动构造函......
  • 实验二
    任务一:t.h1#pragmaonce2#include<string>34classT{5public:6T(intx=0,inty=0);7T(constT&t);8T(T&&t);9~T();1011voidadjust(intratio);12......
  • Springboot实验室设备维修维护管理系统81882(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,公告信息,设备分类,设备信息,设备报修,设备维修,预警信息,培训信息开题报告内容一、研究背景与意义随着科学技术的飞速发展,实验室作为科研与教学的重要基......
  • Springboot实验室教学管理平台59z69(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表学生,老师,教室表,节次,学生课程表,老师课程表,调课申请单,教室,学生教室申请表,老师教室申请表开题报告内容一、研究背景与意义随着高等教育信息化的日益加速,......