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。望採納。。。。。。