首页 > 其他分享 >实验三

实验三

时间:2024-10-25 17:12:14浏览次数:1  
标签:return power int printf char 实验 ans

任务一

源代码

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

截图

问题一:score_to_grade的作用是把输入的分数按等级输出;形参类型是int,返回类型是char.

问题二:程序修改后有问题,无论输入什么数值,最后返回值都为'E'。

任务二

源代码

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

截图

问题一:函数sum_digits的功能是计算一个数的所有数位上数字的和

问题二:能实现同等效果。方式一的算法思维是迭代,方式二是递归。

任务三

源代码

 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 }

截图

问题一:函数power的功能是计算一个数的n次方

问题二:

 

 

任务四

源代码

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

截图

 

 

 

 

 

任务五

源代码

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

截图

 

任务六

迭代

源代码

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

截图

递归

源代码

 1 #include <stdio.h>
 2 int func(int n,int m);
 3 int power(int n);
 4 int main(){
 5     int n,m;
 6     int ans;
 7     while(scanf("%d%d",&n,&m)!=EOF){
 8         ans=func(n,m);
 9         printf("n=%d,m=%d,ans=%d\n\n",n,m,ans);    
10     }
11         return 0;
12 }
13 int func(int n,int m){
14     if(m>n)
15        return 0;
16     if(n==m||m==0)
17         return 1;
18     else
19         return func(n-1,m)+func(n-1,m-1);
20     }
 1 #include <stdio.h>
 2 int func(int n,int m);
 3 int power(int n);
 4 int main(){
 5     int n,m;
 6     int ans;
 7     while(scanf("%d%d",&n,&m)!=EOF){
 8         ans=func(n,m);
 9         printf("n=%d,m=%d,ans=%d\n\n",n,m,ans);    
10     }
11         return 0;
12 }
13 int func(int n,int m){
14     if(m>n)
15        return 0;
16     if(n==m||m==0)
17         return 1;
18     else
19         return func(n-1,m)+func(n-1,m-1);
20     }

截图

 

 

 

 

 

 

任务七

源代码

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

截图

 


标签:return,power,int,printf,char,实验,ans
From: https://www.cnblogs.com/qwh061206/p/18497895

相关文章

  • 实验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
    实验任务一代码t.h1#pragmaonce23#include<string>45//类T:声明6classT{7//对象属性、方法8public:9T(intx=0,inty=0);//普通构造函数10T(constT&t);//复制构造函数11T(T&&t);//移动构造函数12......
  • 算法设计实验6
    p1249有一个8*8的棋盘,行号、列号均为0-7,一个特殊放个的位置是(5,6),给出采用L形骨牌覆盖其他全部方格的一种方案1#include<ostream>2#include<iostream>3#defineMAX_SIZE84usingnamespacestd;5intk;6intx,y;7intboard[MAX_SIZE][MAX_SIZE];8int......
  • 实验三 C语言函数应用编程
    一、实验目的 能正确使用C语法规则定义,声明,调用函数能正确编写递归函数针对具体问题场景,合理抽象出独立的功能模块,正确定义函数并使用,使得代码更具可读性,可维护性针对具体问题场景,能正确,合理使用全局变量和局部static变量,解决实际问题二、实验准备 1,函数定义,声明,调用的语......
  • 实验3:工厂方法模式
    [实验任务一]:加密算法目前常用的加密算法有DES(DataEncryptionStandard)和IDEA(InternationalDataEncryptionAlgorithm)国际数据加密算法等,请用工厂方法实现加密算法系统。实验要求:1.画出对应的类图;2.提交该系统的代码,该系统务必是一个可以能够直接使用的系统,查阅资料完成相......
  • 20222326 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实验内容实验具体内容正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧正确使用msf编码器,使用msfvenom生成如jar之类的其他文件veil,加壳工具使用C+shellcode编程通过组合应用各种技术实现恶意代码免杀用另一电脑实测,在杀软开启的情况下,可......
  • kali一句话木马实验——远程控制(保姆级教程,新手小白也可以操作)
    1.打开apache;在终端中使用管理员权限输入serviceapache2start注:这个是为了打开80端口;打开之后可以使用nmapIP扫描查看80端口是否开放输入虚拟机IP地址,可以在物理机或者虚拟机浏览器打开apache;2.输入ifconfig查看虚拟机IP;3.在桌面找到home,在里面FileSystem目录下找......
  • 实验二
    任务一:1t.h2#pragmaonce34#include<string>56//类T:声明7classT{8//对象属性、方法9public:10T(intx=0,inty=0);//普通构造函数11T(constT&t);//复制构造函数12T(T&&t);//移动构造函......
  • YOLOv11全网最新创新点改进系列:一文掌握YOLOv11评估指标,学会判断实验是否达到发文水平
    YOLOv11全网最新创新点改进系列:一文掌握YOLOv11评估指标,学会判断实验是否达到发文水平!所有改进代码均经过实验测试跑通!截止发稿时YOLOv10已改进40+!自己排列组合2-4种后,考虑位置不同后可排列组合上千万种!改进不重样!!专注AI学术,关注B站up主:Ai学术叫叫兽er!购买相关资料后畅享......
  • HCIP IS-IS 综合实验
    一、实验拓扑二、实验需求及解法本实验模拟IS-IS综合网络,完成以下需求:1.如图所示,配置所有路由器的接口IP地址。R1:interfaceGigabitEthernet0/0/0ipaddress10.0.123.1255.255.255.0R2:interfaceGigabitEthernet0/0/0ipaddress10.0.123.2255.255.255.......