首页 > 其他分享 >实验三

实验三

时间:2024-10-28 13:11:47浏览次数:6  
标签:return int ans char 实验 printf include

任务一

源代码

#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  根据分数判断等第  形参类型为int   返回值类型为char

问题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) {
   if(n<10)
   return n;
 
   
   return sum_digits(n/10)+n%10;
}

运行结果

问题1  根据输入的数字,算出各个位数上的数字的和

问题2  能实现  第一种方法是迭代

                     第二种方法是递归 

 

任务三

源代码

#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   求 n的x次幂

 问题2   

任务4

源代码

#include<stdio.h>
int is_prime(int n);
int main(){
    int n;
    int ans=0; 
    printf("100以内的孪生素数:\n");
    for(n=2;n<=100;n++){
        if(is_prime(n)&&is_prime(n+2)){
        
        
        printf("%d %d\n",n,n+2);
   ans+=1;
   }
    }
   
    printf("100以内的孪生素数共有%d个",ans);
    return 0;
}
int is_prime(int n)
{
  int k;
  for(k=2;k<=n/2;k++)
     if(n%k==0)
       return 0;
   return 1;
    
}

运行结果

任务5

源代码

#include <stdio.h>
#include <stdlib.h>
void hanoi(unsigned int n,char from,char temp,char to);
    void moveplate(unsigned int n,char from,char to);
    int ans=0;
int main(){

    unsigned int n;
    while(scanf("%u",&n)!=EOF){

    hanoi(n,'A','B','C');

    printf("一共移动了%d次\n",ans);
    system("pause");

}
    return 0;

}
void hanoi(unsigned int n,char from,char temp,char to)
{

    if(n==1){
    ans+=1;
    moveplate(n,from,to);

}
    else
    {

        hanoi(n-1,from,to,temp);
        ans+=1;
        moveplate(n,from,to);

        hanoi(n-1,temp,from,to);


    }

}
void moveplate(unsigned int n,char from,char to)
{int ans=0;
    printf("%u:%c-->%c\n",n,from,to);
    ans+=1;
}

运行结果

任务6

源代码 递归

#include <stdio.h>
int func(int n, int m);   // 函数声明

int main() {
    int n, m;
    int ans;

    while(scanf("%d%d", &n, &m) != EOF) {
        ans = func(n, m);   // 函数调用
        printf("n = %d, m = %d, ans = %d\n\n", n, m, ans);
    }
        
    return 0;
}
int func(int n,int m)
{

    if(m==0||n==m)
    return 1;
    if(m>n)
    return 0;
        return func(n-1,m)+func(n-1,m-1);
    
}

迭代

#include <stdio.h>
int func(int n, int m);   // 函数声明

int main() {
    int n, m;
    int ans;

    while(scanf("%d%d", &n, &m) != EOF) {
        ans = func(n, m);   // 函数调用
        printf("n = %d, m = %d, ans = %d\n\n", n, m, ans);
    }
        
    return 0;
}
int func(int n,int m)
{
   int i,a=1,b=1;
   if (m>n)
   return 0;
   for(i=0;i<m;i++)
   {
       a=a*n--;
    a=a/b++;
   }
return a;
}

运行结果

递归

迭代

任务7

#include<stdio.h>
#include<stdlib.h>
char print_charman(int n);
int main(){
    int n;
    printf("Enter n:");
    scanf("%d",&n);
    print_charman(n);
    return 0;
} 
char print_charman(int n)
{
    int t=0;
    for(int i=n;i>=1;i--)
    {
        for(int j=0;j<t;j++)
        printf("\t");
        for(int j=0;j<2*i-1;j++)
        printf(" o\t");
        printf("\n");
        for(int j=0;j<t;j++)
           printf("\t");
           for(int j=0;j<2*i-1;j++)
        printf("<H>\t");
        printf("\n");
            for(int j=0;j<t;j++)
              printf("\t");
              for(int j=0;j<2*i-1;j++)
              printf("I I\t");
        printf("\n");
        t++;
              
    }
}

运行结果

 

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

相关文章

  • 实验3
    实验1:1#include<stdio.h>2#include<stdlib.h>3charscore_to_grade(intscore);4intmain(){5intscore;6chargrade;7while(scanf("%d",&score)!=EOF){8grade=score_to_grade(score);9pri......
  • 实验3
    任务1:1#include<stdio.h>23charscore_to_grade(intscore);45intmain(){6intscore;7chargrade;89while(scanf("%d",&score)!=EOF){10grade=score_to_grade(score);11printf(&q......
  • 实验3
    任务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&quo......
  • [已解决·实验日志] AutoDL系统盘异常爆满,原因是debug 途中退出(ctrl+c),导致缓存文件
    今天照常debug中途退出,准备服务器GPU关机,突然看到系统盘爆满,顿时血压升高,咱来一探究竟参考文档:AutoDL帮助文档 (系统盘空间不足)Linux常用命令-CSDN博客cd/去到根目录看看,究竟是哪个文件夹占空间,使用du-sh命令来递归显示文件夹所占空间du-sh发现是tmp异常大,进......
  • 实验4:抽象工厂模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解抽象工厂模式的动机,掌握该模式的结构;2、能够利用抽象工厂模式解决实际问题。 [实验任务一]:人与肤色使用抽象工厂模式,完成下述产品等级结构: 实验要求:1.画出对应的类图;2.提交源代码;3.注意编程规范。1、......
  • 实验2 类和对象_基础编程1
    1.实验任务1t.h1#pragmaonce23#include<string>45//类T:声明6classT{7//对象属性、方法8public:9T(intx=0,inty=0);//普通构造函数10T(constT&t);//复制构造函数11T(T&&t);//移动构造函数12~......
  • 20222304 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    实验内容1.1实践内容正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧使用msfvenom生成jar、apk等其他文件使用veil加壳工具使用C+shellcode进行编程通过组合应用各种技术实现恶意代码免杀用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电......
  • 中国计量大学《C语言程序设计》课程实验报告
    中国计量大学《C语言程序设计》课程实验报告实验课程:   C语言程序设计        实验名称:实验一 熟悉上机环境、程序设计-顺序结构                                      实验......
  • 实验3
    实验三任务1:源代码:1#include<stdio.h>2charscore_to_grade(intscore);//函数声明3intmain(){4intscore;5chargrade;6while(scanf("%d",&score)!=EOF){7grade=score_to_grade(score);//函数调用8......
  • 实验二 c++
    实验任务一源代码t.h1#pragmaonce23#include<string>45//类T:声明6classT{7//对象属性、方法8public:9T(intx=0,inty=0);//普通构造函数10T(constT&t);//复制构造函数11T(T&&t);//移动构造函数12......