【问题标题】:c program to find pythagorean triplesc程序找到毕达哥拉斯三元组
【发布时间】:2016-01-08 02:57:51
【问题描述】:
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”段落时,结果令人头晕......请帮助我!

【问题讨论】:

    标签: c pythagorean


    【解决方案1】:

    这是一个可能的答案

    #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;
        
    }
    

    【讨论】:

      【解决方案2】:

      在嵌套的代码块周围放置大括号。

      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;
      

      【讨论】:

      • 感谢您回答我的问题。但如果我按照你告诉我的那样做,“不可能”这个词将输出 n 100 次..
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-17
      • 1970-01-01
      相关资源
      最近更新 更多