-1
我在驗證有限域GF(13)中的點是否在橢圓曲線y^2 = x^3 + x + 1上時遇到了這個問題:首先我將環路邊界設置爲i < 2,結果出來了對。,爲什麼僅在改變循環邊界後結果不同?
#include <stdio.h>
#include <math.h>
void main()
{
int a[13], b[13];
int j, i, m, k = 0;
for (i = 0; i < 2; i++)
for (j = 0; j < 13; j++)
if ((i * i * i + i + 1) % 13 == (j * j) % 13) {
a[k] = i;
b[k] = j;
k++;
}
printf ("\n There are %d points on the curve\nThe points are: ", k);
for (m = 0; m < k; m++)
printf ("\nx=%d,y=%d \n", a[m], b[m]);
}
結果是link 1
後,我改變i<2
到i<13
,
for(i=0;i<13;i++)
第4點改變:link 2
它正在做它應該做的。唯一的挑剔問題是'main()'是類型'int'(例如'int main(void)'),main至少會返回一個值'return 0;'。 –
@ DavidC.Rankin與返回類型一樣正確,但是因爲(我認爲)C99,它的隱式返回值爲'0'。 – CoffeeandCode
同意,但取決於編譯器,您將收到未能提供回報的警告。這裏沒有人運行產生任何警告的代碼......':)' –