实验三

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.判断返回输入数据的等级。形参是int整数型,返回值是char字符型。

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.是递归函数。

4

#include <stdio.h>
#include <math.h>
int is_prime(int n);

int main() 
{
    int n=1,i=0;
    while(n+2<=100) 
    {
        if(is_prime(n)&&is_prime(n+2))
        {
            printf("%d, %d\n", n, n+2);
            i++;
        }
        n++;
    }
    printf("100以内的孪生素数有%d个",i);
    return 0;
}

int is_prime(int n) 
{
    if(n<=1)
    {
        return 0;
    }
    for(int i=2;i<=sqrt(n);i++)
    {
        if(n%i==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 i=0;
int main() 
{
    unsigned int n;
    while(scanf("%u",&n) != EOF)
    {
    i=0;
    hanoi(n,'A','B','C');
    printf("移动总次数:%d\n",i); 
    }    
    system("pause");
    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);
    i++; 
}

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>n)
       {
           return 0;
    } 
    int ans=1;
    for(int i=1;i<=m;i++)
    {
        ans=ans*(n-m+i)/i;
    }
return ans; 
}
#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||m==n)
       {
           return 1;
    } 
    if(m>n)
    {
        return 0;
    }
    return func(n-1,m)+func(n-1,m-1);
}

7

#include <stdio.h>
int gcd(int a,int b,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 a,int b,int c)
{
    int min=a;
    if(b<min)
    {
        min=b;
    }
    if(c<min)
    {
        min=c;
    }
    for(int i=min;i>=1;i--)
    {
        if(a%i==0&&b%i==0&&c%i==0)
        {
            return i;
        }
    }
    return 1;
}

 

posted @ 2025-04-03 21:27  周丹婷  阅读(23)  评论(0)    收藏  举报