首页 > 其他分享 >实验3

实验3

时间:2024-10-24 14:59:52浏览次数:1  
标签:return int ans char score 实验 printf

task1

 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';
28     }
29 
30     return ans;
31 }

 功能:将成绩进行分级

形参类型:整型

返回值类型:字符型

问题2:有问题,会一直向下输出导致输出值都是E。

Task2.c

 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 }

 

 作用:将函数各位数字相加求和

问题二:能够实现,初始代码是用循环的方法,改进的代码是用递归的思维

 

Task3.c

 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 }

 问题一:求x的n次幂

问题二:是递归

 Task4

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

 Task5.c

 

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

 Task6.c

 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 // 函数定义
17 // 待补足。。。(分别用迭代和递归实现)
18 //迭代
19 int func(int n,int m)
20 {
21     int down=1,up=1,k,i;
22     for(i=1;i<=m;i++)
23     {
24         down=down*i;
25     }
26      for(k=n;k>n-m;k--)
27     {
28         up=up*k;
29     }
30     return up/down;
31 }
32 //递归
33 int func(int n,int m)
34 {
35     if(m==n||m==0)
36     return 1;
37     else if (m>n)
38     return 0;
39     else
40     return (func(n-1,m-1)+func(n-1,m));
41 }

 Task7.c

 

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

 

标签:return,int,ans,char,score,实验,printf
From: https://www.cnblogs.com/JackSusan/p/18496649

相关文章

  • 实验三
    #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&q......
  • 实验2 类与对象 基础编程
    实验一:t.h:#pragmaonce#include<string>//类T:声明classT{//对象属性、方法public:T(intx=0,inty=0);//普通构造函数T(constT&t);//复制构造函数T(T&&t);//移动构造函数~T();//析构函数voidadj......
  • 实验2 类和对象_基础编程1
    1.实验任务1t.h1#pragmaonce23#include<string>45//类T:声明6classT{7public:8T(intx=0,inty=0);//普通构造函数9T(constT&t);//复制构造函数10T(T&&t);//移动构造函数11~T();//析构函......
  • 实验3
    task1:源代码:1#include<stdio.h>2charscore_to_grade(intscore);//函数声明3intmain(){4intscore;5chargrade;6while(scanf_S("%d",&score)!=EOF){7grade=score_to_grade(score);//函数调用8......
  • 20222327 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    一、实验内容1.正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧2.通过组合应用各种技术实现恶意代码免杀3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本4.问题回答(1)杀软是如何检测出恶意代码的?基于特征码检测:杀毒软件中......
  • 20222317 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    一、实验内容本次实验目的为通过多次加密、文件格式欺骗、填充、加壳等技术手段实现恶意代码免杀,产生恶意程序,并尝试通过杀毒软件,不被杀毒软件检测出来。具体实验内容如下:1.正确使用msf编码器,使用msfvenom生成如jar之类的其他文件;2.能够使用veil,加壳工具;3.能够使用C+shellcode......
  • 20222417 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实践内容1.1实验目的(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧正确使用msf编码器,使用msfvenom生成如jar之类的其他文件veil,加壳工具使用C+shellcode编程(2)通过组合应用各种技术实现恶意代码免杀如果成功实现了免杀的,简单语言描述原理,不......
  • 实验三蕉 C语言函数应用编程蕉
    实验三蕉C语言函数应用编程蕉可恶,是原始博士!什么时候!?......
  • 20222318 2024-2025-1 《网络与系统攻防技术》实验二实验报告
    1.实验内容(一)本周课程内容(1)深入理解后门概念及其实际案例,明晰后门对系统安全构成的潜在威胁。(2)普及后门技术知识,涵盖各类进程隐藏技巧,并熟悉netcat、meterpreter、veil等常见工具的应用。(3)进一步学习了shellcode注入的逻辑原理及其在不同场景下的应用。(二)实验目标(1)使用net......
  • 实验2 类和对象
    任务1t.h1#pragmaonce23#include<string>45//类T:声明6classT{7//对象属性、方法8public:9T(intx=0,inty=0);//普通构造函数10T(constT&t);//复制构造函数11T(T&&t);//移动构造函数12~T();......