我對C很陌生,雖然我之前做過很多Java。我正在製作一個基本的Pascal三角形程序,我一直在尋找它一小時試圖讓它工作。所有的邏輯對我來說似乎都是正確的,但在我意識到錯誤之前,我可能會死去。這裏的程序:Pascal的三角形程序不起作用
#include <stdio.h>
#include <stdlib.h>
double fact(int num);
int main()
{
int row_index = 0;
printf("Enter the row index : ");
scanf("%d",&row_index);
printf("\n");
int i;
double output1 = 0;
double output2 = 0;
double output3 = 0;
double output4 = 0;
double output5 = 0;
int output6 = 0;
for(i = 0; i <= (row_index + 1); i++)
{
output1 = fact(row_index);
output2 = fact(i);
output3 = row_index - i;
output4 = fact(output3);
output5 = output1/(output2 * output4);
output6 = (int)(output5);
printf("%i ",output6);
}
return 0;
}
double fact(int num)
{
double result;
int i;
for(i = 1; i <= num; ++i)
{
result = result * i;
}
return result;
}
編譯器給我任何錯誤,每每次我輸入一個數它給出了這樣的輸出:
Enter the row index : 6
-2147483648 -2147483648 -2147483648 -2147483648 -2147483648 -2147483648 -2147483648 -2147483648
如果您可以找到一種漸進式算法,它可以乘以併除以前一項,而不是嘗試拍攝具有階乘函數的月亮。或者,通過僅添加兩個先前的數組項來構建數組。 –