信息:a
为直角三角形最短边b
的长度和另一边的长度,两者之间的差异越大a
,b
角度越小。那是:
- 三元组 (3, 4, 5) 的差异为 4-3=1
- 三元组 (5, 12, 13) 相差 12-5=7
因此最小的角度将在三元组 (5, 12, 13)
我正在编写一个程序,它比较一个范围内定义的所有毕达哥拉斯三元组,并以最小的角度打印三元组。到目前为止我没有工作,我不知道我可以从这里去哪里。
#include <stdio.h>
int smallest(int a, int b) {
int difference = b - a;
return 0;
}
int main() {
int a = 0, b = 0, c = 0, n, counter = 1, i = 0;
printf("Please Enter a Positive Integer: \n");
scanf("%d", &n);
for (c = 0; c < n; c++) {
for (b = 0; b < c; b++) {
for (a = 0; a < b; a++) {
if (a * a + b * b == c * c ) {
printf("%d:\t%d %d %d\n", counter++, a, b, c);
}
}
}
i = counter - 1;
}
printf ("The difference is %d\n", smallest(a, b));
printf ("There are %d Pythagorean Triples in this range.\n", i);
return 0;
}
该程序只是打印差异为0
我正在寻找要打印的程序,例如上面的示例“最小角度的三角形是(5、12、13)”
我知道我必须对差异进行分类并进行比较,但这就是我目前所拥有的,有什么建议吗?