首页 > 其他分享 >实验3

实验3

时间:2024-10-24 15:43:38浏览次数:7  
标签:return int ans char 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 
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 }

 函数score_to_grade的功能是根据输入的分数返回对应的等级。形参是整形,返回值是字符型。

有问题,没有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 
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 }

函数sum_digits的功能是计算输入值的各个位数之和。

能实现等同的效果。第一种算法是迭代,第二种算法是递归。

 

任务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 }

函数power的功能是计算x的n次方。

是递归函数,

 

任务4

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

 

任务5

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

 

任务7

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

 

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

相关文章

  • 实验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......
  • 实验三
    #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)通过组合应用各种技术实现恶意代码免杀如果成功实现了免杀的,简单语言描述原理,不......