首页 > 其他分享 >实验三

实验三

时间:2024-10-24 22:00:49浏览次数:1  
标签:10 return int ans score 实验 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 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:作为一个函数,根据分数划分等级。形参为整数型score,返回值为字符型ans。

问题2:有,少了break,程序不能及时终止;双引号应该为单引号。

任务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 int sum_digits(int n) {
18     int ans = 0;
19 
20     while(n != 0) {
21         ans += n % 10;
22         n /= 10;
23     }
24 
25     return ans;
26 }

 

问题1:分别求出每位的数并求和

问题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 int power(int x, int n) {
18     int t;
19 
20     if(n == 0)
21         return 1;
22     else if(n % 2)
23         return x * power(x, n-1);
24     else {
25         t = power(x, n/2);
26         return t*t;
27     }
28 }

问题1:算出x的n次方

问题2:是, 偶数先计算x的n/2次幂,再将结果平方。奇数减一转为偶数,计算n-1次幂,然后将结果乘以x

 

任务4:

 1 #include <stdio.h>
 2 #include <math.h>
 3 
 4 int is_prime(int n);
 5 
 6 int main()
 7 {
 8     int n;
 9     int cnt = 0;
10     printf("100以内的孪生素数:\n");
11     for (n = 1; n <= 98; n++)
12     {
13         if (is_prime(n) && is_prime(n + 2))
14         {
15             printf("%d %d\n", n, n + 2);
16             cnt++;
17         }
18     }
19     printf("100以内的孪生素数共有%d个\n", cnt);
20     return 0;
21 }
22 
23 int is_prime(int n)
24 {
25     int i;
26     if (n == 1)
27         return 0;
28     if (n == 2)
29     {
30         return 1;
31     }
32     if (n % 2 == 0)
33         return 0;
34     for (i = 3; i <= sqrt(n); i += 2)
35     {
36         if (n % i == 0)
37         {
38             return 0;
39         }
40     }
41     return 1;
42 }

任务5:

 

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

 

任务6:

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

 

 1 #include <stdio.h>
 2 int func(int n, int m);
 3 int main()
 4 {
 5     int n, m;
 6     int ans;
 7     while (scanf("%d%d", &n, &m) != EOF)
 8     {
 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 || n == m)
19         return 1;
20     else
21         return func(n - 1, m) + func(n - 1, m - 1);
22 }

 任务7:

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

 

标签:10,return,int,ans,score,实验,printf
From: https://www.cnblogs.com/Erhjiu/p/18497839

相关文章

  • 实验二
    实验一代码:1#include"t.h"2#include<iostream>34usingstd::cout;5usingstd::endl;67voidtest();89intmain(){10test();11cout<<"\nmain:\n";12cout<<"Tob......
  • 20222403 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实验内容1.1.实践内容(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧正确使用msf编码器,使用msfvenom生成如jar之类的其他文件veil,加壳工具使用C+shellcode编程(2)通过组合应用各种技术实现恶意代码免杀如果成功实现了免杀的,简单语言描述原......
  • 实验2 类和对象_基础编程1
    实验任务1:实验代码:1#include<string>23//类T:声明4classT{5//对象属性、方法6public:7T(intx=0,inty=0);//普通构造函数8T(constT&t);//复制构造函数9T(T&&t);//移动构造函数10~T();......
  • 王爽汇编实验12
    下面是实验十二的代码assumecs:codecodesegmentstart: ;do0的安装程序,只需要安装一次,以后无需此步骤 movax,cs movds,ax movsi,offsetdo0 ;设置ds:si指向do0程序所在位置 movax,0 moves,ax movdi,200h ;设置es:di指向中断......
  • 实验3 C语言函数应用编程
    实验一#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);......
  • 实验3
    任务1:#include<stdio.h>charscore_to_grade(intscore);//函数声明intmain(){intscore;chargrade;while(scanf("%d",&score)!=EOF){grade=score_to_grade(score);//函数调用printf("分数:%d,等级:%......
  • 实验3
    任务11#include<stdio.h>23charscore_to_grade(intscore);45intmain(){6intscore;7chargrade;89while(scanf("%d",&score)!=EOF){10grade=score_to_grade(score);11printf(&......
  • 实验2 类和对象_基础编程1
    实验任务1:t.h源码:1#pragmaonce23#include<string>45//类T:声明6classT{7//对象属性、方法8public:9T(intx=0,inty=0);//普通构造函数10T(constT&t);//复制构造函数11T(T&&t);//移动构造函数12......
  • 20222305 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    网络攻防实验报告姓名:田青学号:20222305实验日期:2024/10/18—2024/10/31实验名称:后门原理与实践指导教师:王志强1.实验内容本周学习内容总结:1.用户态(ring3)和内核态(ring0),切换时机:系统调用、中断、异常。2.自启动技术。3.进程隐藏技术实现:1>改名2>基于系统服务的伪装3>......
  • 实验3
    task11#include<stdio.h>23charscore_to_grade(intscore);//函数声明45intmain(){6intscore;7chargrade;89while(scanf("%d",&score)!=EOF){10grade=score_to_grade(score);//函数调用11......