使用【C语言】写【以交互方式输入三个整数(允许为负数)如任何一个为0,提示输入错误,不进行后续计 3)要求使用while循; 3) 要求使用辗转相除法计算最大公约数并输出】的代码
时间: 2024-10-24 10:08:17 浏览: 15
在C语言中,你可以通过while循环和辗转相除法(欧几里得算法)来实现输入三个整数并计算最大公约数的功能。这里有一个示例程序:
```c
#include <stdio.h>
// 辗转相除法(欧几里得算法)计算最大公约数
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
int main() {
int num1, num2, num3;
// 循环获取三个整数,直到输入正确的数值
while (true) {
printf("请输入三个整数(允许为负数,但不能为0): ");
scanf("%d %d %d", &num1, &num2, &num3);
if (num1 != 0 && num2 != 0 && num3 != 0) { // 检查输入是否都是非零
break;
} else {
printf("错误: 输入不能包含0.\n");
}
}
// 计算三个数的最大公约数
int result = gcd(gcd(num1, num2), num3);
printf("这三个数的最大公约数是: %d\n", result);
return 0;
}
```
这段代码首先定义了一个递归的gcd函数来计算两个数的最大公约数,然后在一个无限循环中获取用户输入,当输入都不为0时才跳出循环计算最大公约数。
阅读全文