查找毕达哥拉斯三元组的C程序


int a,b,n;
printf("Input Natural Number n (n<2,100,000,000) : ");
scanf("%d",&n);
for(a=1;a<=100;a++)
    for(b=1;b<=100;b++)
        if(a<b && a*a + b*b == n*n)
        {
            printf("(%d, %d, %d)n",a,b,n);
        }
        /*else
        {
            printf("impossible n");
        }
          */         
        return 0;

如果我删除'else',程序将正常运行。但我想做另一个函数,可以检查数字是否有勾股数通过使用'else'段落。但是当我在代码中加入else段落时,结果令人头晕....请帮帮我!!

用大括号括住嵌套的代码块。

int a, b, n;
int impossible = 1;
printf("Input Natural Number n      (n<2,100,000,000) : ");
scanf("%d", &n);
for (a = 1; a <= 100; a++) {
    for (b = 1; b <= 100; b++) {
        if (a < b && a * a + b * b == n * n) {
            printf("(%d, %d, %d)n", a, b, n);
            impossible = 0;
        }
    }
}
if (impossible == 1) printf("impossible n");
return 0;

这是一个可能的答案

#include <stdio.h>
int power(int base, int power);
int main(){
    int N;
    
    printf("INput the Num: ");
    scanf("%d", &N);
    
    int a, b, c;
    for(a = 0; a < N ; a++) {
        for(b = 0; b< N; b++) {
            if ((a < b) && (b < N - a - b)) {
                if (power(a, 2) + power(b, 2) == power(N - a - b, 2)) {
                    printf("%d^2 + %d^2 = %d^2 n", a, b, N-a-b);
                }
            }
        }
    }
}

int power(int base, int power) {
    int result = 1;
    for(int i = 0; i < power ; i++) {
        result *= base;
    }
    return  result;
    
}

最新更新