首页 > 其他分享 >实验3

实验3

时间:2024-10-28 22:45:37浏览次数:6  
标签:return int printf char 实验 ans include

任务1:

源代码:

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

问题1:将分数以等第的形式输出;形参类型:整型;返回值类型:字符型

问题2:有1.字符用的是双引号,没有用单引号,不符合格式要求 2.case6-9后没有加上break;不,能及时终止

 

任务2:

源代码:

#include<stdio.h>
int sum_digits(int n);
int main(){
    int n;
    int ans;
    while(printf("Enter n:"),scanf("%d",&n)!=EOF){
        ans=sum_digits(n);
        printf("n = %d, ans = %d\n\n",n,ans);
    }
    return 0;
}
int sum_digits(int n){
    int ans=0;
    while(n!=0){
        ans+=n%10;
        n/=10;
    }
    return ans;
}

问题1:将输入的数的各位上的数相加并输出

问题2:能,第一种运用了迭代的算法思维,第二种运用了递归的算法思维

 

任务3:

源代码:

#include<stdio.h>
int power(int x,int n);
int main(){
    int x,n;
    int ans;
    while(printf("Enter x and n:"),scanf("%d%d",&x,&n)!=EOF){
        ans=power(x,n);
        printf("n = %d,ans = %d\n\n",n,ans);
    }
    return 0;
}
int power(int x,int n){
    int t;
    if(n==0)
        return 1;
    else if(n%2)
        return x*power(x,n-1);
    else{
            t=power(x,n/2);
            return t*t;
    }
}

 

 问题1:计算x的n次幂

问题2:是

 

任务4:

源代码:

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

 

任务5:

源代码:

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

 

任务6:

源代码1(迭代):

 1 #include <stdio.h>
 2 int func(int n, int m);
 3 int main(){
 4     int n, m;
 5     int ans;
 6 
 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 int func(int n,int m){
15     int i,j;
16     int up=1;
17     int down=1;
18     for(i=n;i>=(n-m+1);i--){
19         up*=i;
20     }
21     for(j=1;j<=m;j++){
22         down*=j;
23     }
24     return up/down;
25 }

源代码2(递归):

 1 #include <stdio.h>
 2 int func(int n, int m);
 3 int main(){
 4     int n, m;
 5     int ans;
 6 
 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 int func(int n,int m){
15     if(m==0||m==n){
16         return 1;
17     }
18     if(m>n){
19         return 0;
20     }
21     return func(n-1,m-1)+func(n-1,m);
22 }

 

任务7:

源代码:

 

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

 

标签:return,int,printf,char,实验,ans,include
From: https://www.cnblogs.com/wjz08/p/18497845

相关文章

  • 实验3
    任务11#include<stdio.h>2charscore_to_grade(intscore);3intmain()4{5intscore;6chargrade;7while(scanf("%d",&score)!=EOF){8grade=score_to_grade(score);9printf("分数:%d,等级;%c\n\n&quo......
  • 实验3
    task1源代码:#include<stdio.h>charscore_to_grade(intscore);//函数声明intmain(){intscore;chargrade;while(scanf("%d",&score)!=EOF){grade=score_to_grade(score);//函数调用printf("分数:%d,......
  • 实验2
    实验任务1:实验代码:t.h:1#pragmaonce23#include<string>45//类T:声明6classT{7//对象属性、方法8public:9T(intx=0,inty=0);//普通构造函数10T(constT&t);//复制构造函数11T(T&&t);//移动构造函......
  • 实验二
    任务一:t.h1#pragmaonce2#include<string>34classT{5public:6T(intx=0,inty=0);7T(constT&t);8T(T&&t);9~T();1011voidadjust(intratio);12......
  • Springboot实验室设备维修维护管理系统81882(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,公告信息,设备分类,设备信息,设备报修,设备维修,预警信息,培训信息开题报告内容一、研究背景与意义随着科学技术的飞速发展,实验室作为科研与教学的重要基......
  • Springboot实验室教学管理平台59z69(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表学生,老师,教室表,节次,学生课程表,老师课程表,调课申请单,教室,学生教室申请表,老师教室申请表开题报告内容一、研究背景与意义随着高等教育信息化的日益加速,......
  • GaussDB 数据库实验环境搭建指导
    @目录简介内容描述实验环境说明1GaussDB数据库购买1.1实验介绍1.1.1关于本实验1.1.2实验目的1.2购买GaussDB数据库1.2.1登录华为云1.2.2购买华为云GaussDB数据库简介本指导书适用于在华为云部署购买GaussDB数据库,通过该指导书可以顺利完成GaussDB数据库在华为云的购买。......
  • 实验二 类和对象_基础编程1
    1.实验任务1验证性实验:简单类T的定义和测试。实践、阅读代码,回答问题。这个简单任务覆盖以下内容:类的定义(封装)类的使用:对象的创建、访问数据共享机制在同一个对象的所有操作之间共享数据——实现机制:封装在同一个类的所有对象之间共享数据......
  • 实验2 类和对象_基础编程1
    实验任务1t.h源代码//类T:声明classT{//对象属性、方法public:T(intx=0,inty=0);//普通构造函数T(constT&t);//复制构造函数T(T&&t);//移动构造函数~T();//析构函数voidadjust(intratio);//......
  • 实验3
    11#include<stdio.h>2charscore(ints);3intmain()4{5ints;6chara;7while(scanf("%d",&s)!=EOF)8{9a=score(s);10printf("分数:%d",s);11printf("等级:%......