2013-03-03 59 views
0

快速問題,但我找不到任何解決方案。基本上下面的程序是假設從1-1000的每個整數。但是當我印刷它時,它會切斷。我只能打印300行,然後切斷它。對於這個例子,而不是第一行是1,它是4,如果它是j < 301,並且它將是9如果j < 302.我怎樣才能打印1000行是我的主要問題。如何打印300多行?

#include <stdio.h> 
#include <math.h> 

int main(void) 
{ 
    int j; 
    double k,sarr[1000]; 

    for (j=0; j<301; j++) 
    { 
     k = pow(j,2); 
     sarr[j] = k; 
     printf("\n%lf",sarr[j]);  
    } 

    return(0); 
}  
+5

你如何閱讀輸出?你可以儘可能地在終端上滾動嗎?您的終端只有300行回捲? – 2013-03-03 20:07:29

回答

3

你的代碼沒有問題。我懷疑你的終端只把程序輸出的最後300行保存在它的行緩衝區中。

嘗試將輸出重定向到文件(或將編號從程序中寫入文件)。

+0

是的,Windows上的cmd.exe只顯示最後幾百行。查看調試日誌時非常煩人。 – sashoalm 2013-03-03 20:23:42

1

第一行應該是1= 2^0),所以你的輸出被截斷。

您可以更改您的for循環以循環遍歷i = 0,...,999 - for (j=0; j<1001; j++),並將輸出重定向到一個文件以便在使用終端時查看整個輸出。

運行:

./program > filename 

,以程序的輸出重定向到一個叫filename文件,該文件會被保存在當前目錄。這個文件應該包含所有打印的數字。

此外,不需要陣列本身。只需使用double類型的單個變量。