实验3

实验任务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;
}

屏幕截图 2025-10-28 145020

问题1功能是给分数打等级 形式参数int整形 返回值char字符串型

问题2存在问题无论输入什么输出值均为E

实验任务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;
 }

屏幕截图 2025-10-28 145942

问题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;
    }
}

屏幕截图 2025-10-28 152206

问题1 功能求N次方

问题2 是

IMG_20251028_164530

 

实验任务4

#include<stdio.h>
#include<stdlib.h>
int prime(int x);
 
int main()
{
    int cnt=0,n=1;
    printf("100以内的孪生素数:\n");
    while(n<=100)
    {
        if(prime(n)&&prime(n+2))
        {
            cnt+=1;
            printf("%d %d\n",n,n+2);
        }
        n++;
    }
    printf("100以内的孪生素数共有%d个",cnt);
    system("pause");
    return 0;
}
 
int prime(int x)
{
    int i,flag=0;
    for(i=2;i<=x/2;++i)
    {
        if(x%i==0)
        {
            flag=1;
            break;
        }
    }
    if(x<=1)
    {
        flag=1;
    }
    if(flag==0)
        return x;
    else
        return 0;
}

屏幕截图 2025-10-28 163907

 

 

实验任务5

#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 a=1,b=1,c,i,j;
    for(i=n-m+1;i<=n;i++){
        a*=i;
    }
    for(j=1;j<=m;j++){
        b*=j;
    }
    c=a/b;
    return c;  
}

屏幕截图 2025-10-28 160300

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

屏幕截图 2025-10-28 161157

实验任务6

#include<stdio.h>
int gcd(int z,int x,int c);
int main()
{
    int a,b,c;
    int ans;
    while(scanf("%d%d%d",&a,&b,&c)!=EOF)
    {
        ans=gcd(a,b,c);
        printf(" 最大公约数:%d\n\n",ans);
    }
    return 0;
}
 
int gcd(int x,int y,int z)
{
    int t,i,min=0;
    min=(x<y)?x:y;
    min=(min<z)?min:z;
    for(i=1;i<=min;++i)
    {
        if(x%i==0&&y%i==0&&z%i==0)
            t=i;
    }
    return t;
}

屏幕截图 2025-10-28 163156

实验任务7

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

屏幕截图 2025-10-28 164500

 

posted @ 2025-10-28 16:46  付小  阅读(4)  评论(1)    收藏  举报