慷规扣 发表于 2025-10-28 21:50:07

实验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;
}运行截图


问题

问题1

判断分数对应的等级;int;char
问题2

当输入大于60的一个数时,由于ans='';后面没有break,将继续往下执行,直至switch结束,最后ans='E',所以无论输入什么数输出的结果都是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;
}运行截图


问题

问题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>
int is_prime(int n);

int main()
{
        int n,j;

        printf("100以内的孪生素数:\n");

        for (n = 2,j=0; n <= 98; n++)
        {
                if (is_prime(n) && is_prime(n + 2))
                {
                        printf("%d %d\n", n, n + 2);
                        j += 1;
                }
        }

        printf("100以内的孪生素数共有%d个.\n", j);

        return 0;
}

int is_prime(int n)
{
        int i;

        for (i = 2; i <= n / 2; i++)
        {
                if (n % i == 0)
                {
                        return 0;
                }
        }

        return 1;
}运行截图


实验任务7

代码

#include#include int print_charman(int n);int main() {        int n;        printf("Enter n: ");        scanf("%d", &n);        print_charman(n);         return 0;}int print_charman(int n){        int i,j,k,l,p=0;        j = 2 * n - 1;        for (i = 1; i

笃扇 发表于 2025-11-30 03:01:57

感谢分享,下载保存了,貌似很强大

圉棺 发表于 前天 09:21

懂技术并乐意极积无私分享的人越来越少。珍惜

靳谷雪 发表于 8 小时前

懂技术并乐意极积无私分享的人越来越少。珍惜
页: [1]
查看完整版本: 实验3