如何在C语言中设计并实现一个程序,用于打印出所有100范围内的勾股数(即满足a² + b² = c²条件下的正整数三元组a, b, c)?
时间: 2024-10-22 17:08:28 浏览: 26
在C语言中设计一个程序来找出100范围内的勾股数,可以采用循环遍历的方式,对于每个较小的数值,计算其平方根,然后检查是否能找到两个数的平方和等于这个值。以下是简单的步骤和代码实现:
1. 定义一个函数来判断三个数是否构成勾股数:
```c
#include <math.h> // 包含math库,使用sqrt函数
int isPythagoreanTriple(int a, int b, int c) {
if (a * a + b * b == c * c && a >= 0 && b >= 0 && c > 0 && a <= c && b <= c) {
return 1; // 如果满足勾股定理,则返回1,否则0
} else {
return 0;
}
}
```
2. 主函数中使用嵌套循环找到所有符合条件的三元组:
```c
int main() {
for (int c = 1; c <= 100; ++c) { // 从1开始,因为最小的c为1
for (int b = 1; b <= c; ++b) {
int a = sqrt(c * c - b * b); // 根据勾股定理计算a
if (a * a == (c * c - b * b)) { // 检查是否精确相等,因为sqrt可能会有浮点误差
printf("(%d, %d, %d)\n", a, b, c);
}
}
}
return 0;
}
```
阅读全文