首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于Pythagorean三元组的C程序-错误的输出

Pythagorean三元组是指满足勾股定理(a^2 + b^2 = c^2)的三个正整数(a,b,c)。下面是一个C程序,用于找到给定范围内的所有Pythagorean三元组,并输出结果。

代码语言:c
复制
#include <stdio.h>

int main() {
    int a, b, c, limit;
    printf("请输入一个正整数作为上限:");
    scanf("%d", &limit);

    printf("在范围[1, %d]内的Pythagorean三元组为:\n", limit);
    for (a = 1; a <= limit; a++) {
        for (b = a; b <= limit; b++) {
            for (c = b; c <= limit; c++) {
                if (a * a + b * b == c * c) {
                    printf("(%d, %d, %d)\n", a, b, c);
                }
            }
        }
    }

    return 0;
}

然而,该程序存在一个错误,导致输出结果不正确。问题出在第二个循环中,应该将b的初始值设为a + 1,而不是a。这是因为在满足勾股定理的三元组中,a的值必须小于b的值。

修正后的程序如下:

代码语言:c
复制
#include <stdio.h>

int main() {
    int a, b, c, limit;
    printf("请输入一个正整数作为上限:");
    scanf("%d", &limit);

    printf("在范围[1, %d]内的Pythagorean三元组为:\n", limit);
    for (a = 1; a <= limit; a++) {
        for (b = a + 1; b <= limit; b++) {
            for (c = b; c <= limit; c++) {
                if (a * a + b * b == c * c) {
                    printf("(%d, %d, %d)\n", a, b, c);
                }
            }
        }
    }

    return 0;
}

修正后的程序会正确输出在给定范围内的所有Pythagorean三元组。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券