c语言勾股数
‘壹’ c语言:输入数值N,求N内所有勾股数
#include<stdio.h>
#include<math.h>
int main() {
void PrintPythNum(unsigned int max);
unsigned int n;
scanf("%u", &n);
if (n < 3)
return 0;
unsigned int iSquareNum;
for (int i = 0;i < n;i++) {
iSquareNum = (unsigned int)pow(i + 1, 2);
PrintPythNum(iSquareNum);
}
return 0;
}
int isSquareNum(unsigned int num)//判断是否是平方数
{
double result = sqrt((double)num);
if ((int)result == result)
return 1;
return 0;
}
void PrintPythNum(unsigned int max)//判断是否是勾股数,并且打印
{
int isSquareNum(unsigned int num);
unsigned int min=1, mid,i=2;
static int count = 0;
while(min < max / 2)
{
mid = max - min;
if (isSquareNum(mid)) {
count++;
printf("NO.%d : %u^2+%u^2=%u^2\n",count,(int)sqrt(min), (int)sqrt(mid), (int)sqrt(max));
}
min = (unsigned int)pow(i, 2);
i++;
}
}
‘贰’ C语言,输入三个整数,判断其能否构成勾股数
int IsPyth(int num1,int num2,int num3)//判断三数能否构成勾股数
{
int num1squ,num2squ,num3squ;
if(0!=num1 && 0!=num2 && 0!= num3)//三个数都不能为0,才能构成勾股数
{
num1squ=num1*num1;
num2squ=num2*num2;
num3squ=num3*num3;
if(num1squ=num2squ+num3squ || num2squ=num1squ+num3squ || num3squ=num1squ+num2squ )//任意一个数的平方等于其余两个数的平方和,则便能构成勾股数
return 1;//返回1,说明能构成勾股数
else
return 0;//返回0,说明不能构成勾股数
}
else//当其中任意一个数为0,都不能构成勾股数
return 0;//返回0,说明不能构成勾股数
}
然后在主函数中调用就可以了!
附上完整过程
-------------------------------------------------------------------------------------------------
#include <stdio.h>
void main()
{
int n1,n2,n3;
printf(“请输入三个数:”);
scanf("%d %d %d",&n1,&n2,&n3);
if(IsPyth(n1,n2,n3))//判断函数返回的值,不为0,则能构成勾股数
prinft("%d %d %d这三个数能构成勾股数!",n1,n2,n3);
else
prinft("%d %d %d这三个数不能构成勾股数!",n1,n2,n3);
}
将函数IsPyth()的所有内容放到void main()前面即可!
你试试!
‘叁’ C语言:输出500以内所有勾股数 用C语言程序表达!
暴力一下就行了
#include<stdio.h>
int main()
{
int i, j, k;
i = j = k =0;
for (i = 1; i < 500; ++i)
{
for (j = i; j < 500; ++j)
{
for (k = 1; k < 500; ++k)
{
if ( (i * i + j * j) == k * k)
{
printf("%d, %d, %d\n", i, j, k);
}
}
}
}
return 0;
}
‘肆’ c语言求勾股数
#include"stdafx.h"
intmain()
{
inti;
scanf("%d",&i);
for(inta=1;a<=i;a++)
{
for(intb=a;b<=i;b++)
{
for(intc=b;c<=i;c++)
{
if(a*a+b*b==c*c)
{
printf("%d%d%d ",a,b,c);
}
}
}
}
}
‘伍’ C语言程序求勾股数
#include"stdio.h"
int main(int argc, char* argv[])
{
int a,b,c,count=0;
for(a=1;a<=1000;a++)
for(b=1;b<=1000;b++)
for(c=a-b;c<a+b && c<1000;c++)
if(c*c==(a*a + b*b)){
count+=1;
printf("%d,%d,%d\n",a,b,c);
}
printf("共计有 %d 组\n",count);
system("pause");
return 0;
}
‘陆’ 用c语言求解 输出1-50以内的所有勾股数
#include<stdio.h>
voidmain(){
inta,b,c;
for(a=2;a<=48;a++)
for(b=a+1;b<=49;b++)
for(c=b+1;c<=50;c++)
if(a*a+b*b==c*c)
printf("%-4d%-4d%-4d ",a,b,c);
}
‘柒’ C语言求勾股数,提示WA,求解
如图所示,f这里清零一下就好了,上一个循环f=1之后没有f=0的时候,就一直是1了,if里的判断就算不成立,还会输出i。望采纳。。。。。。