0

快速提问,但我找不到任何解决方案。基本上,下面的程序假设将每个整数从 1 到 1000 平方。但是当我打印它时,它会切断。我只能打印 300 行,然后将其切断。对于此示例,如果 j<301 则为 4,而不是第一行为 1,如果 j<302 则为 9。如何打印 1000 行是我的主要问题。

#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);
}    
4

2 回答 2

3

你的代码没有问题。我怀疑您的终端仅将程序输出的最后 300 行保留在其行缓冲区中。

尝试将输出重定向到文件(或从程序中将数字写入文件)。

于 2013-03-03T20:09:34.297 回答
1

第一行应该是1( = 2^0) 以便您的输出被截断。

您可以将 for 循环更改为循环 i = 0, ..., 999 -for (j=0; j<1001; j++)并将输出重定向到文件,以便在使用终端时查看整个输出。

跑:

./program > filename

为了将程序的输出重定向到一个名为 的文件filename,该文件将保存在您的当前目录中。该文件应包含所有打印的数字。

此外,不需要阵列本身。只需使用一个类型的变量double

于 2013-03-03T20:11:50.467 回答