首页 > 其他分享 >实验3

实验3

时间:2024-10-25 18:33:26浏览次数:1  
标签:10 return int ans char 实验 printf

实验任务1:

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

 问题1:功能是作为被调用的函数判断等级,形参类型是int,返回值类型是char。

问题2:有,字母A,B,C,D应该用单引号来表示字符类型。

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

问题1:功能是作为被定义的函数,用于执行主函数。

问题2:能实现,第二种先判断n是否小于10,将运算简单化。

实验任务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     
26     t=power(x,n/2);
27     return t*t;
28 }
29     
30     }
31         
32     

 问题1:功能是用作递归函数。

问题2:f(x)等于x乘x的n-1次方,x的0次方等于1为出口。

实验任务4:

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

实验任务5:

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

实验任务6:

 1 #include<stdio.h>
 2 int func(int n,int m);
 3 
 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     }
12     return 0;
13 }
14 //迭代方式 
15 int func(int n,int m){
16 
17     int i,j,x=1,y=1,ans;
18     for(i=n;i>=n-m+1;i--){
19         x*=i;
20     }
21     for(j=m;j>=1;j--){
22     
23         y*=j;
24         
25     }
26      ans=x/y;
27      return ans;
28 }

 

 1 int func2(int n,int m);
 2 
 3 int main(){
 4     int n,m;
 5     int ans;
 6     while(scanf("%d%d",&n,&m)!=EOF){
 7         ans=func(n,m);
 8         printf("n=%d,m=%d,ans=%d\n\n",n,m,ans);
 9         
10     }
11     return 0;
12 }
13 //递归方式 
14 
15  int func(int n,int m){
16  
17     if(n<m)
18     {
19     return 0;
20 }
21     else if(m==0||m==n)
22     {
23         return 1;
24     }
25     else{
26     
27     return func(n-1,m)+func(n-1,m-1);
28 }
29 }

实验任务7:

 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 {
13     int i,j,k;
14     for(i=n;i>=1;i--){
15             for(k=i;k<n;k++)
16             {
17                 printf("\t");
18             }
19             for(j=1;j<=2*i-1;j++)
20             {
21             printf(" o\t");    
22             }
23             printf("\n");    
24             for(k=i;k<n;k++)
25             {
26                 printf("\t");
27             }
28             for(j=1;j<=2*i-1;j++)
29             {
30             printf("<H>\t");    
31             }
32             printf("\n");    
33             for(k=i;k<n;k++)
34             {
35                 printf("\t");
36             }
37             for(j=1;j<=2*i-1;j++)
38             {
39             printf("I I\t");
40             }
41             printf("\n");
42             
43     
44         printf("\n");
45     }
46 }

 

标签:10,return,int,ans,char,实验,printf
From: https://www.cnblogs.com/yu-hong-yan/p/18496665

相关文章

  • 实验3
    task.1代码:#include<stdio.h>#include<stdlib.h>#include<math.h>charscore_to_grade(intx);intmain(){intscore;chargrade;while(scanf("%d",&score)!=EOF){grade=score_to_grade(score);......
  • 实验三
    任务一源代码1#include<stdio.h>2charscore_to_grade(intscore);3intmain(){4intscore;5chargrade;6while(scanf("%d",&score)!=EOF){7grade=score_to_grade(score);8printf("分数:%d,等级:%c\......
  • 实验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);//移动构造函......