Tan Haoqiang の C 言語設計演習の解答 (1)

目次

10個の数字を順番に入力し、その中で最大の数字を出力します。

数字はa、b、cの3つあり、大きい順に出力する必要があります。

1+2+3+……100を探す

数値 n が 3 と 5 の両方で割り切れるかどうかを判断します

100 ~ 200 の素数を出力します


10個の数字を順番に入力し、その中で最大の数字を出力します。


以下は、10 個の数値を入力し、その最大値を求める C 言語で書かれたプログラムです。
 

#include <stdio.h>

int main() {
    int i;
    double numbers[10]; // 声明一个包含10个元素的数组,用于存储输入的数字

    // 输入10个数字
    printf("请输入10个数字:\n");
    for (i = 0; i < 10; i++) {
        printf("请输入第 %d 个数字:", i + 1);
        scanf("%lf", &numbers[i]);
    }

    // 初始化最大值为第一个数字
    double max = numbers[0];

    // 找出最大值
    for (i = 1; i < 10; i++) {
        if (numbers[i] > max) {
            max = numbers[i];
        }
    }

    // 输出最大值
    printf("最大的数是:%.2lf\n", max);

    return 0;
}

この C コードは、10 個の数値を入力し、入力された数値の中の最大値を見つけて画面に出力するように求めます。浮動小数点入力を読み取るために `%lf` 形式指定子を使用していることに注意してください。

数字はa、b、cの3つあり、大きい順に出力する必要があります。


以下は、3 つの数値 a、b、c を大きい順に出力する C 言語で書かれたプログラムです。
 

#include <stdio.h>

int main() {
    double a, b, c;

    // 输入三个数
    printf("请输入三个数:\n");
    printf("请输入第一个数:");
    scanf("%lf", &a);
    printf("请输入第二个数:");
    scanf("%lf", &b);
    printf("请输入第三个数:");
    scanf("%lf", &c);

    // 比较并按大小顺序输出
    if (a <= b && a <= c) {
        printf("按大小顺序输出:%.2lf, ", a);
        if (b <= c) {
            printf("%.2lf, %.2lf\n", b, c);
        } else {
            printf("%.2lf, %.2lf\n", c, b);
        }
    } else if (b <= a && b <= c) {
        printf("按大小顺序输出:%.2lf, ", b);
        if (a <= c) {
            printf("%.2lf, %.2lf\n", a, c);
        } else {
            printf("%.2lf, %.2lf\n", c, a);
        }
    } else {
        printf("按大小顺序输出:%.2lf, ", c);
        if (a <= b) {
            printf("%.2lf, %.2lf\n", a, b);
        } else {
            printf("%.2lf, %.2lf\n", b, a);
        }
    }

    return 0;
}

このプログラムは 3 つの数字を入力するよう求め、その数字を比較して昇順に画面に出力します。

1+2+3+……100を探す


1+2+3+...+100 を計算するには、数値を累積するループを C 言語で記述します。以下にプログラム例を示します。
 

#include <stdio.h>

int main() {
    int sum = 0;
    int i;

    for (i = 1; i <= 100; i++) {
        sum += i;
    }

    printf("1+2+3+...+100 = %d\n", sum);

    return 0;
}

数値 n が 3 と 5 の両方で割り切れるかどうかを判断します


このプログラムは変数 `sum` を 0 に初期化し、その後 `for` ループを使用して 1 から 100 まで増加させ、各数値を `sum` に累積します。最後に、蓄積された結果を出力します。

#include <stdio.h>

int main() {
    int n;

    // 输入待判断的数
    printf("请输入一个整数:");
    scanf("%d", &n);

    // 判断是否同时被3和5整除
    if (n % 3 == 0 && n % 5 == 0) {
        printf("%d 同时被3和5整除。\n", n);
    } else {
        printf("%d 不同时被3和5整除。\n", n);
    }

    return 0;
}

100 ~ 200 の素数を出力します


以下は、100 から 200 までのすべての素数を出力する C 言語プログラムです。
 

#include <stdio.h>

// 函数用于判断一个数是否是素数
int isPrime(int num) {
    if (num <= 1) {
        return 0; // 1和负数不是素数
    }
    for (int i = 2; i * i <= num; i++) {
        if (num % i == 0) {
            return 0; // 如果能整除,则不是素数
        }
    }
    return 1; // 是素数
}

int main() {
    int lower = 100;
    int upper = 200;

    printf("100到200之间的素数有:\n");

    for (int num = lower; num <= upper; num++) {
        if (isPrime(num)) {
            printf("%d ", num);
        }
    }

    printf("\n");

    return 0;
}

このプログラムは、数値が素数かどうかを判断するために使用される `isPrime` 関数を定義します。次に、メイン関数で 100 から 200 までの各数値を反復処理し、各数値に対して `isPrime` 関数を呼び出して素数かどうかを確認し、素数を画面に出力します。

2 つの数値 m と n の最大公約数を求めます


2 つの数値 m と n の最大公約数 (GCD) を見つけるには、ユークリッドのアルゴリズムを使用して計算できます。以下は C 言語プログラムの例です。

#include <stdio.h>

// 最大公約数の計算に使用する関数
int gcd(int m, int n) {     if (n == 0) {         return m;     }     return gcd(n, m % n); }




int main() {     int m, n;

    // 2 つの整数を入力
    printf("m と n の 2 つの整数を入力してください:");
    scanf("%d %d", &m, &n);

    // gcd 関数を呼び出して最大公約数を計算します。
    int result = gcd(m, n);

    //結果を出力
    printf("最大公約数は: %d\n", result);

    0を返します。
}

このプログラムは、まずユーザーに 2 つの整数 m と n を入力するよう求め、次に `gcd` という関数を呼び出してそれらの最大公約数を計算し、結果を画面に出力します。`gcd` 関数は再帰を使用して、一方の数値がゼロになるまで最大公約数を計算し、その時点でもう一方の数値が最大公約数になります。

おすすめ

転載: blog.csdn.net/qq_50942093/article/details/132952501