首页 > 其他分享 >实验3(2.0)

实验3(2.0)

时间:2024-10-29 14:32:18浏览次数:6  
标签:return int ans char score 实验 printf 2.0

任务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 符合一种情况后,程序并未终止,继续运行直至最后一条,因此无论输入任何值都,ans 的值都会返回为E

 

任务二

#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/2);
    else {
        t=power(x,n/2);
        return t*t;
    }    
}

 

问题1 计算x的n次幂

问题2 

任务4

#include <stdio.h>
#include <math.h>

int is_prime(int n);
int main(){
    int n ,c=0 ; 
    for (n=2;n<=100;n++){
        if(is_prime(n)&&is_prime(n+2)){
        printf("%d %d\n",n,n+2);
        c++;
        }
        
    }
    printf ("100以内的孪生素数共有%d对\n",c);
    return 0;
}
int is_prime(int n){
    int m;
    for(m=2;m<=sqrt(1.0*n);m++)
       if(n%m==0)
         return 0;
    return 1;
}

任务5

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

while(scanf("%u",&n) !=EOF){
c=0;
hanoi(n,'A','B','C');
printf("一共移动了%d次\n",c);
}
return 0;
}
void hanoi(unsigned int n,char from,char temp,char to){

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

}
else{
hanoi(n-1,from,to,temp);
moveplate(n,from,to);
hanoi(n-1,temp,from,to);

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

}

任务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(n<m) return 0;
    else if(n==m||m==0) return 1;
    else{
    int a,b,x=1,y=1;
    for(a=0;a<m;a++){
        x*=n-a;
    }
    for(b=0;b<m;b++){
        y*=m-b;
    }
    return (x/y);
}
}

递归

#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(n<m) return 0;
    if(m==0) return 1;
    return func(n-1,m)+func(n-1,m-1);
}

 

任务7

#include <stdio.h>
#include <stdlib.h>
void print_charman(int n);

int main(){
    int n;
    
    printf("Enter :");
    scanf("%d",&n);
    print_charman(n);
    
    return 0;
} 
void print_charman(int n){
    int i,m,c,k=0;
    n=2*n-1;
    while(n>0){
    m=n;
    for(c=0;c<k;c++){    
        
        printf("    ");
    
        }
    
    for(c=0;c<m;c++){    
        printf(" o ");
        printf("    ");
    
        }
            printf("\n");
    for(c=0;c<k;c++){    
        
        printf("    ");
    
        }
    for(c=0;c<m;c++){    
        printf("<H>");
        printf("    ");
    
        }
            printf("\n");
    for(c=0;c<k;c++){    
        
        printf("    ");
    
        }
    for(c=0;c<m;c++){    
        printf("I I");
        printf("    ");
    
        }
            printf("\n");
    i=0;
    n=n-2; 
    k++;
    }
    
 
}

 

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

相关文章

  • 实验3
    任务一#include<stdio.h>charscore_to_grade(intscore);//函数声明intmain(){intscore;chargrade;while(scanf("%d",&score)!=EOF){grade=score_to_grade(score);//函数调用printf("分数:%d,等级:%......
  • 实验3
    任务11#include<stdio.h>23charscore_to_grade(intscore);//函数声明45intmain(){6intscore;7chargrade;89while(scanf("%d",&score)!=EOF){10grade=score_to_grade(score);//函数调用11......
  • C#“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决方案
    当使用C#语言连接Access数据库时,即使安装有64位版本的Office,也会出现“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。”这个问题。从Office2016开始,困扰了我好多年。以往的解决之道(也是网上给出的方法)是:1、彻底卸载并安装32位的Office2、更改注册表、数据库等......
  • HNU-操作系统实验lab6-2022级
    实验目的任务调度是操作系统的核心功能之一。UniProton实现的是一个单进程支持多线程的操作系统。在UniProton中,一个任务表示一个线程。UniProton中的任务为抢占式调度机制,而非时间片轮转调度方式。高优先级的任务可打断低优先级任务,低优先级任务必须在高优先级任务挂起或......
  • 从0开始搭建一个生产级SpringBoot2.0.X项目(三)SpringBoot接口统一返回和全局异常处理
    前言最近有个想法想整理一个内容比较完整springboot项目初始化Demo。SpringBoot接口统一返回和全局异常处理,使用@ControllerAdvice+ @ExceptionHandler 的组合来实现。一、pom文件新增依赖<dependency><groupId>com.alibaba</groupId>......
  • 实验3
    task1#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......
  • 实验2 类与对象
    实验任务一t.h1//类T:声明2classT{3//对象属性、方法4public:5T(intx=0,inty=0);//普通构造函数6T(constT&t);//复制构造函数7T(T&&t);//移动构造函数8~T();//析构函数910voidadj......
  • 实验3
    任务1:源代码:1#include<stdio.h>2charscore_to_grade(intscore);3intmain(){4intscore;5chargrade;67while(scanf("%d",&score)!=EOF){8grade=score_to_grade(score);9printf("分数:%d......
  • 实验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,......