首页 > 其他分享 >实验三

实验三

时间:2024-10-27 17:48:58浏览次数:1  
标签:return power int ans score 实验 printf

实验一

代码

#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,返回值类型是字符串。

问题2:没加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:当n=0时,power(x,n)=1;n为偶数时,power(x,n)=power(x,n/2)*power(x,n/2);n为奇数时,power(x,n)=x*power(x,n-1).

实验4

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

 实验5

#include<stdio.h>

void move(int n,char from,char temp,char to){

    if(n==1){
    
    printf("%d: %c->%c\n",n,from,to);
    return;
}
else{

move(n-1,from,to,temp);
printf("%d: %c->%c\n",n,from,to);
move(n-1,temp,from,to);

}
}
    int main(){
        int n,x=0;
        while(scanf("%d",&n)!=EOF){
        move(n,'A','B','C');
        x=(1<<n)-1;
printf("一共移动了%d次\n\n",x);
    
    }
        return 0;
        
    }

实验6

include <stdio.h>
int func(int n, int m);   // 函数声明
int jc(int x);
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 x=1,y=1,p=1,i;
    char ans;
    if(n<m)
    return ans=0;
else if(m==0||n==m)
    return ans=1;
    
    else {
    for(int i=1;i<n;i++){
        x*=(n+1-i);
    }
        for(int i=1;i<m;i++){
        y*=(m+1-i);
    }
    for(int i=1;i<n-m;i++){
        p*=(n-m+1-i);
    }
    ans=x/(y*p);
        return ans ;}
    
}

#include <stdio.h>
int func(int n, int m);   // 函数声明
int jc(int x);
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){
    char ans;
    if(n<m)
    return ans=0;
    if(n==m||m==0)
    return ans=1;
     else
    return ans=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 n: ");
    scanf("%d", &n);
    print_charman(n); 
       
    return 0;
}
void print_charman(int n){
    
    for(int i=0;i<n;i++){

    int x=2*(n-i)-1;
    printf("%*s",8*i,"");
    for(int j=0;j<x;j++)
    

    printf(" o \t");
    printf("\n");
    printf("%*s",8*i,"");
    for(int j=0;j<x;j++)
    

    printf("<H>\t");
    printf("\n");
    printf("%*s",8*i,"");
    for(int j=0;j<x;j++)
    

    printf("I I\t");
    printf("\n");
}

}

 

标签:return,power,int,ans,score,实验,printf
From: https://www.cnblogs.com/xia2005/p/18508185

相关文章

  • 实验3
    1#include<stdio.h>23charscore_to_grade(intscore);45intmain(){6intscore;7chargrade;89while(scanf("%d",&score)!=EOF){10grade=score_to_grade(score);11printf("分......
  • 实验3
    任务一源代码1#include<stdio.h>2charscore_to_grade(intscore);3intmain(){4intscore;5chargrade;6while(scanf("%d",&score)!=EOF){7grade=score_to_grade(score);8printf("分数:%d,等级:%c\n\n",score,grade......
  • 实验1
    Task1://现代C++标准库、算法库体验//本例用到以下内容://1.字符串string,动态数组容器类vector、迭代器//2.算法库:反转元素次序、旋转元素//3.函数模板、const引用作为形参#include<iostream>#include<string>#include<vector>#include<algorithm>usin......
  • 实验3
    #include<stdio.h>charscore_to_grade(intscore);//函数声明intmain(){intscore;chargrade;while(scanf("%d",&score)!=EOF){grade=score_to_grade(score);//函数调用printf("分数:%d,等级:%c\n\......
  • 实验2(2)
    Task1://t.hpragmaonceinclude//类T:声明classT{//对象属性、方法public:T(intx=0,inty=0);//普通构造函数T(constT&t);//复制构造函数T(T&&t);~T();//移动构造函数//析构函数voidadjust(intratio);voiddisplay()const;private:int......
  • 实验干货|电流型霍尔传感器采样设计03-信号调理
    在前两篇博客中,将霍尔输出的电流信号转换成了有正有负的电压信号,但是DSP需要采集0~3V的电压信号,因此需要对信号缩放并抬升至全部为正的信号。常见的方法是,通过比例放大(缩小)电路对信号进行放缩,通过加法电路抬升基准电平。这里分为两步,首先设计基准电平。设计基准电平DSP的A......
  • 实验2
    Task1://t.hpragmaonceinclude//类T:声明classT{//对象属性、方法public:T(intx=0,inty=0);//普通构造函数T(constT&t);//复制构造函数T(T&&t);~T();//移动构造函数//析构函数voidadjust(intratio);voiddisplay()const;private:in......
  • SQL sever 索引实验
    1.用sql语言创建数据库DB_test,代码参考https://blog.csdn.net/m0_75112455/article/details/143257034?spm=1001.2014.3001.5502创建成功2.进行数据的导入(1)下载TPC-H文件(2)将tbl文件导入到数据库useDB_test;GOdroptablePART;CREATETABLEPART(P_PARTKEYintp......
  • 实验3
    任务11#include<stdio.h>2#include<math.h>3#include<time.h>4#include<stdlib.h>5charscore_to_grade(intscore);678intmain()9{10intscore;11chargrade;12while(scanf("%d",&s......
  • 实验3
    任务11#include<stdio.h>23charscore_to_grade(intscore);45intmain(){6intscore;7chargrade;89while(scanf("%d",&score)!=EOF){10grade=score_to_grade(score);11printf(&......