首页 > 其他分享 >实验3

实验3

时间:2024-10-25 21:31:53浏览次数:1  
标签:return int ans char 实验 printf include

任务1

代码

#include<stdio.h>
char score_to_grade(int score);
int main()
{
    int score;
    char grade;
    while (scanf("%d",&score)!=EOF){
        grade=score_to_grade(score);
        printf("分数:%d,等级:%c\n\n",score,grade);
    }
    return 0;
}
char score_to_grade(int score){
    char ans;
    switch(score/10){
        case 10:
        case 9:ans='A';break;
        case 8:ans='B';break;
        case 7:ans='C';break;
        case 6:ans='D';break;
        default:ans='E';
    }
    return ans;
}

截图

1:功能为将对应分数转化为等级,形式参数类型为整型,返回值类型为字符型。

2:有问题,当输入一个数时,会一次打印ABCDE四个等级。

 

 

 

 

任务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:功能为计算n每一位数的和

2:不行,新算法只能计算个位数和十位数字之和,对于三位及三位以上的数字无法计算。

 

 

 

任务3:

代码

 1 #include<stdio.h>
 2 int power(int x,int n);
 3 int main()
 4 {
 5     int x,n;
 6     int ans;
 7     while (printf("Enter x and n:"),scanf("%d%d",&x,&n)!=EOF){
 8         ans=power(x,n);
 9         printf("n=%d,ans=%d\n\n",n,ans);
10     }
11     return 0;
12 }
13 int power(int x,int n){
14     int t;
15     if(n==0)
16         return 1;
17     else if(n%2)
18         return x*power(x,n-1);
19     else
20         {
21             t=power(x,n/2);
22             return t*t;
23         }
24     }

 

截图

1:计算x的n次方

2:是递归函数

数学模型如下图

 

 

 

 

 

 

 

任务4:

代码

 1 #include<stdio.h>
 2 #include<math.h>
 3 
 4 int is_prime(int n){
 5     int i,m;
 6     m=sqrt(n);
 7     for(i=2;i<=m;i++)
 8     {
 9         if(n%i==0)
10             break;
11     }
12     if(i>m)
13         return 1;
14     else
15         return 0;
16 }
17 
18 
19 int main(){
20     int i,n,sum=0;
21     printf("100以内的孪生素数:\n");
22     for (i=2;i<=100;i++)
23     {
24         if(is_prime(i)&&is_prime(i+2))
25         {
26             printf("%d %d\n",i,i+2);
27             sum++;
28      } }
29      printf("100以内的孪生素数共有%d个",sum);
30      return 0;
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 sum=0;
 7 int main(){
 8     unsigned int n;
 9     
10     while(scanf("%u",&n)!=EOF)
11 {    sum=0;
12     hanoi(n,'A','B','C');
13     printf("一共移动了%d次\n",sum);
14 }
15     
16     system("pause");
17     return 0;
18 } 
19 
20 void hanoi(unsigned int n,char from,char temp,char to)
21 {
22     if(n==1)
23     {
24         moveplate(n,from,to);
25         sum++;
26     }
27     else
28         {
29             hanoi(n-1,from,to,temp);
30             moveplate(n,from,to);
31             sum++;
32             hanoi(n-1,temp,from,to);
33         
34         }
35 }
36 
37 void  moveplate(unsigned int n,char from,char to)
38 {
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 
 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 (m == 0 || n == m) 
18     
19         return 1;
20      
21     else if (n < m) 
22     
23         return 0;
24     
25     else 
26     
27         return func(n-1,m)+func(n-1,m-1);
28  } 

迭代

 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 {
18     int i,j,up=1,down=1,ans;
19     for(i=n;i>=(m-1);i--)
20     {
21         up=up*i;
22     }
23     
24     for(j=m;j>=1;j--)
25     {
26         down=down*j;
27     }
28     ans=up/down;
29     return ans;
30  } 

截图(两次结果相同)

 

 

 

任务7(注:函数非原创,实在想不到)

代码

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 void print_charman(int n);
 5 int main() {
 6     int n;
 7 
 8     printf("Enter n: ");
 9     scanf("%d", &n);
10     print_charman(n); // 函数调用
11        
12     return 0;
13 }
14 
15 // 函数print_charman定义
16 // 待补足
17 // xxx
18 void print_charman(int n)
19 {
20     int i,j,k;
21     for(i=n;i>=1;i--){
22             for(k=i;k<n;k++)
23                 {
24                     printf("\t");
25                 }
26             for(j=1;j<=2*i-1;j++)
27                 {
28                     printf(" o\t");
29                 }
30                 printf("\n");
31             
32                 
33             for(k=i;k<n;k++)
34                 {
35                     printf("\t");
36                 }
37             for(j=1;j<=2*i-1;j++)
38                 {
39                     printf("<H>\t");
40                 }
41             printf("\n");
42          
43             
44             
45             for(k=i;k<n;k++)
46                 {
47                     printf("\t");
48                 }
49             for(j=1;j<=2*i-1;j++)
50                 {
51                     printf("I I\t");
52                 }
53             printf("\n");
54         
55     }
56 }

 

截图

 

 

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

相关文章

  • python+flask框架的基于微信小程序的高校实验室考勤管理系统的设计与实现前端8(开题+
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景关于高校实验室考勤管理问题的研究,现有研究主要集中在传统考勤系统的设计与实现上,如基于RFID、指纹识别等技术。然而,随着移动互联网技术的......
  • 实验三
    task11#include<stdio.h>2chargrade(intscore)3{4chara;5switch(score/10)6{7case10:8case9:a='A';break;9case8:a='B';break;10case7:a='C';b......
  • 实验三
    实验11#include<stdio.h>2charscore_to_grade(intscore); //函数声明3intmain(){4  intscore;5  chargrade;6  while(scanf("%d",&score)!=EOF){7    grade=score_to_grade(score); //函数调用8    printf("分数:%d,......
  • 实验6-2 英文字母替换加密(大小写转换+后移1位)
     ......
  • 实验3
    实验任务1:1intmain(){2intscore;3chargrade;45while(scanf("%d",&score)!=EOF){6grade=score_to_grade(score);7printf("分数:%d,等级:%c\n\n",score,grade);89}10return......
  • 实验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......