请用C语言编写如下程序: 从键盘输入10个正整数,求出最大数,最小数,以及他们的最大公约数。要求用数组实现。
时间: 2023-06-09 09:06:54 浏览: 107
c语言+从键盘输入10个无序的整数,存放在数组中,找出数组中最大值与最小值的所在的位置,并输出数组元素所在的位置与数组元素的值
5星 · 资源好评率100%
好的,以下是用 C 语言编写的程序:
#include <stdio.h>
int main() {
int nums[10]; // 定义一个大小为 10 的整型数组
int max, min, gcd;
printf("请输入 10 个正整数:\n");
// 循环读入 10 个正整数
for (int i = 0; i < 10; i++) {
scanf("%d", &nums[i]);
}
// 初始化 max 和 min
max = min = nums[0];
// 循环查找最大值和最小值
for (int i = 1; i < 10; i++) {
if (nums[i] > max) {
max = nums[i];
} else if (nums[i] < min) {
min = nums[i];
}
}
// 计算最大公约数
gcd = max; // 先假设最大值为最大公约数
while (gcd > 0) {
int i;
for (i = 0; i < 10; i++) {
if (nums[i] % gcd != 0) {
break;
}
}
if (i == 10) { // 所有数都能被 gcd 整除
break;
}
gcd--;
}
printf("最大数:%d\n最小数:%d\n最大公约数:%d\n", max, min, gcd);
return 0;
}
注意:这只是一个参考答案,可能会有不同的实现方式。如果不理解程序中的某些细节,可以参考 C 语言教程或者向我提问。
阅读全文