我的工作是使用c來證明fermats理論不正確。所以我做的是嵌套循環,它很容易閱讀。C語言cygwin編譯器,不知道爲什麼會發生這種情況
這裏是代碼:
#include <stdio.h>
#include <math.h>
quadtest(unsigned long long int a, unsigned long long int b, unsigned long long int c, unsigned int n)
{
if ((pow(a,n)+pow(b,n))==pow(c,n))
return 1;
else
return 0;
}
main()
{
unsigned long long int a;
unsigned long long int b;
unsigned long long int c;
unsigned int n;
//a=1; b=1; c=1; n=1;
for(n=2; n<100; n++)
{
printf("\nn=%d",n);
for(c=1; c<500; c++)
{
printf("\ntrying now c=%d and n=%d",c,n);
for(b=1; b<500; b++)
{
if (quadtest(a,b,c,n)) break;
//printf("\nb=%d, n=%d",b,n);
}
for(a=1; a<500; a++)
{
if (quadtest(a,b,c,n)) break;
//printf("\na=%d, n=%d",a,n);
}
}
printf("\nthe right values to prove fermats theory wrong are n=%d,c=%d,b=%d,a=%d",n,c,b,a);
}
}
編譯後,即時得到「試圖C =隨機數,N = O N總是出於某種原因等於0,即使它永遠應該是0
。IM也越來越像 「正確的價值觀,以證明費馬的理論錯爲n = 99,C = 500,b = 0,A = 500」
這再次,無論是A,b,C,或n應該是0.不知道是什麼問題
是%d是無符號long long int的正確格式說明符... – 2013-03-10 20:50:37
您正在使用未初始化的'a',因爲您已經註釋了初始化。 – teppic 2013-03-10 20:55:43
我很確定%d是所有整數的正確初始值設定項。 – Alex 2013-03-10 21:00:54