谭浩强C语言设计习题答案(一)

目录

依次将10个数输入,要求输出其中最大的数

有3个数a,b,c,要求按大小顺序把它们输出

求1+2+3+……100

判断一个数n是否同时被3和5整除

将100到200之间的素数输出


依次将10个数输入,要求输出其中最大的数


以下是使用C语言编写的程序,用于输入10个数字并找出其中的最大值:
 

#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`格式说明符来读取浮点数输入。

有3个数a,b,c,要求按大小顺序把它们输出


以下是一个用C语言编写的程序,用于按大小顺序输出三个数a、b、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;
}

这个程序会要求您输入三个数,然后它会比较这些数,并按升序顺序将它们输出到屏幕上。

求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之间的素数输出


以下是一个C语言程序,用于输出100到200之间的所有素数:
 

#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` 函数来检查是否为素数,并将素数输出到屏幕上。

求两个数m和n的最大公约数


要求两个数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;

    // 输入两个整数
    printf("请输入两个整数 m 和 n:");
    scanf("%d %d", &m, &n);

    // 调用gcd函数计算最大公约数
    int result = gcd(m, n);

    // 输出结果
    printf("最大公约数是:%d\n", result);

    return 0;
}

这个程序首先要求用户输入两个整数m和n,然后调用名为 `gcd` 的函数来计算它们的最大公约数,并将结果打印到屏幕上。 `gcd` 函数使用了递归来计算最大公约数,直到其中一个数变为零,此时另一个数即为最大公约数。

猜你喜欢

转载自blog.csdn.net/qq_50942093/article/details/132952501
今日推荐