如何用C输出100以内的所有勾股数?

.输出100以内满足勾股定理的整数。要求:a<=b<=c勾股数:a的平方+b的平方=c的平方。

#include <stdio.h>

int main()

{int a,b,c,k=0;

for(a=1;a<70;a++)

 for(b=a+1;b<71;b++)

  for(c=b+1;c<=100;c++)

 if(a*a+b*b==c*c)

 { printf("%4d%4d%4d\t",a,b,c);

   k++;

 }

 printf("Total=%d\n",k);

 getch();

 return 0;

 }

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-09
#include <stdio.h>
void main()
{
for (int i=1; i<=100; i++)
for (int j=1; j<=i; j++)
for (int k=1; k<=j; k++)
if (k*k + j*j == i*i)
printf("%d^2 + %d^2 = %d^2\n", k, j, i);
}
第2个回答  2019-02-09
#include<stdio.h>
int main()
{
int x,y,z,k=0;
for(z=1;z<=100;z++)
for(y=z-1;y>0;y--)
for(x=y-1;x>0;x--)
{
if(x*x+y*y==z*z)
{
printf("%4d、%4d、%4d\t",x,y,z);
k++;
if(k%5==0)
{
printf("\n");
}
}
}
return 0;
}
一楼的答案让人费解
第3个回答  2013-08-09
#include "math.h"
#include "string.h"
void GetPythafromanynaturalNum(int nn)
{
int m =0,n = 0;
int m_max=0,n_max=0;
int x=0,y=0,z=0;m_max = sqrt(1.0*nn);
n_max = sqrt(1.0*nn/2);
for (n=1;n<n_max;n++)
for(m=n+1;m<m_max;m++)
{
x=m*m-n*n;
y= 2*m*n;
z=m*m+n*n;
printf("The absolute value of x=%d y=%d z=%d \n", x,y,z);
}
}
void main(void)
{
int naturalnum;
naturalnum =100;
GetPythafromanynaturalNum(naturalnum);}
相似回答