2013-03-03 2 views
0

빠른 질문이지만 해결책을 찾지 못했습니다. 아래의 프로그램은 기본적으로 1-1000의 정수를 제곱 한 것으로 가정합니다. 그러나 내가 그것을 인쇄 할 때, 그것은 끊어진다. 나는 단지 300 줄을 인쇄 할 수 있고 그 후에 그것을 잘라 버릴 수있다. 이 예에서는 첫 번째 줄이 1 대신 j가 < 인 경우 4, j가 < 인 경우 9가됩니다. 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 라인의 스크롤 백만 가지고 있습니까? –

답변

3

코드에 아무 문제가 없습니다. 나는 당신의 터미널이 라인 버퍼에있는 프로그램 출력의 마지막 300 라인만을 유지하고 있다고 생각한다.

출력을 파일로 리디렉션하거나 프로그램 내에서 파일에 숫자를 쓰십시오.

+0

예, Windows의 cmd.exe는 마지막 몇 백 줄만 표시합니다. 디버그 로그를 볼 때 매우 귀찮습니다. – sashoalm

1

첫 번째 줄은 1 (= 2^0)이어야 출력이 잘립니다.

for 루프를 i = 0, ..., 999 - for (j=0; j<1001; j++) 이상의 루프로 변경하고 출력을 파일로 리디렉션하여 터미널을 사용할 경우 전체 출력을 볼 수 있습니다.

실행 : 현재 디렉토리에 저장됩니다 filename라는 파일에 프로그램의 출력을 리디렉션하기 위해

./program > filename 

. 이 파일에는 인쇄 된 모든 숫자가 들어 있어야합니다.

또한 어레이 자체가 필요하지 않습니다. 유형이 double 인 단일 변수 만 사용하십시오.