1. 编写一个C语言程序,输出1-50以内所有的勾股数,即3个正整数x、y、z∈[1,50],要求x2+y2=z2,且x<y<z。
时间: 2024-11-27 18:21:35 浏览: 4
313-用定时器T1中断控制两个LED以不同周期闪烁(51单片机C语言实例Proteus仿真和代码)
5星 · 资源好评率100%
为了编写一个C语言程序来找出1到50范围内的所有勾股数,你可以创建一个循环结构来遍历所有可能的组合,并检查它们是否满足勾股定理。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPythagorean(int x, int y, int z) {
return (x * x + y * y == z * z);
}
int main() {
for (int i = 1; i <= 49; i++) { // 遍历较小的两个数
for (int j = i + 1; j <= 49; j++) { // 让j从i+1开始,防止重复(i=i,i+1)
int z = sqrt(i * i + j * j); // 计算可能的z值
if (z * z == i * i + j * j && z > j && z <= 50) { // 检查是否满足勾股定理并排序
printf("(%d, %d, %d)\n", i, j, z);
}
}
}
return 0;
}
```
这个程序首先定义了一个`isPythagorean`函数来检查三个数是否构成勾股数,然后在主函数中使用两层嵌套循环,分别代表x和y,计算出可能的z值,并验证它是否满足条件。如果满足,就打印出这三个数。
阅读全文