首页 > 其他分享 >实验3

实验3

时间:2024-10-26 23:22:50浏览次数:1  
标签: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 }

问题1:函数score_to_grade的功能是实现分数到等级的转化,形参类型为整型,返回值类型为字符型。

问题2:有问题。1、在条件的后面缺少break指令,会继续执行后面的语句,使结果出现错误。2、单个字符用单引号,而非双引号。

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

问题1:函数sum_digits的功能是将一个正整数的每一位数相加求和。

问题2:可以实现同等效果。

修改之前是使用迭代的方法,将n的每一位数逐个相加;修改之后,使用递归的方法,将一个i位数n的每一位相加转化成(i-1)位数的每一位和加上它原来的个位上的数。

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

问题1:函数power的功能是计算x的n次方的值。

问题2:是。

 

任务4:

源代码

 

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

任务5:

源代码

 

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

任务6:

源代码1

 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 int func(int n,int m){
17     int i,j,ans = 1;
18     for(i = n;i>=n-m+1;i--)
19        ans*=i;
20     for(j = m;j>=1;j--)
21        ans/=j;
22     return ans;
23 } 

源代码2:

 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 int func(int n,int m){
17     if(n<m)
18       return 0;
19     else if(m == 0||n == m)
20       return 1;
21     else
22       return func(n-1,m)+func(n-1,m-1);
23 }

任务7:

源代码

 

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

 

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

相关文章

  • 20222408 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实验内容1.1回答问题(1)杀软是如何检测出恶意代码的?①基于特征码的检测:AV软件厂商搜集最全最新的特征码库,并以此来尝试匹配文件中的一个或几个片段②启发式恶意软件检测:根据片面特征推断,包括行为(如连接恶意网站、开放端口、修改系统文件等),外观(文件签名、结构、厂商等)。③基于行......
  • 实验2
    任务1:T.h1#pragmaonce23#include<string>45//类T:声明6classT{7//对象属性、方法8public:9T(intx=0,inty=0);//普通构造函数10T(constT&t);//复制构造函数11T(T&&t);//移动构造函数12~T();......
  • 实验3
    task1:Q1:将分数转为等第;整型;字符型Q2:没有break,输出等第后将自动向下运行;字符型变量用单引号task2:Q1:将输入中各个数字之和算出Q2:这种算法使用迭代思想,原算法使用自然语言task3:Q1:计算x的n次方Q2:是; if(n==0)    return1;  elseif(n%2)    returnx*p......
  • 程序设计实验2
    运行结果1问题1:不能运行,因为func函数未声明问题2:普通构造函数可以初始化,复制构造函数是对同类对象的引用,移动构造函数是对参数右值的引用,编译周期结束时,自动调用析构函数问题3:不能运行实验任务21//Complex.h2#pragmaonce3#include<string>4#include<io......
  • 实验3 c语言函数应用编程
    实验任务1task1.c1#include<stdio.h>23charscore_to_grade(intscore);//函数声明45intmain(){6intscore;7chargrade;89while(scanf("%d",&score)!=EOF){10grade=score_to_grade(score);//......
  • 实验2 类和对象_基础编程1
    task1:t.h1#pragmaonce23#include<string>45//类T:声明6classT{7//对象属性、方法8public:9T(intx=0,inty=0);//普通构造函数10T(constT&t);//复制构造函数11T(T&&t);//移动构造函数12~T();......
  • 【嵌入式原理设计】实验一:软硬件环境搭建&数字端口应用
    目录一、实验目的 二、实验环境三、实验内容四、实验记录及处理五、实验小结六、成果文件提取链接一、实验目的         配置ESPArduino开发平台,熟悉实验的软硬件工作环境和基本的工作方式二、实验环境        Win10+ESP32实验开发板三、实......
  • 实验3
    task.1#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",s......
  • Web高级开发实验:EL基本运算符与数据访问
    一、实验目的掌握EL的定义,即ExpressionLanguage,用于提高编程效率。学习和掌握在开发环境中创建Java文件,并在jsp文件中使用EL表达式去调用其中的方法与属性等。二、实验所用方法上机实操三、实验步骤及截图1、创建javaweb项目,在src文件夹下创建myClasses包。在myClasses包......
  • 实验三
    #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);}return0;}charscore_......