-1

问题是我试图为数字 1 - 10 显示一个nn^2的表格,除了第一组数字之外,这一切似乎都很好。看来程序,可能是由于我的编码不好,认为1 * 1 = 2。我尝试重新排列代码并使用不同的循环,但我能得到的最接近的是正确显示除第一组之外的所有其他数字。

这是代码:

int main (void)
{

    int num, num2, exp;

    num = 0;

    printf ("\nPROGRAM TO DETERMINE SQUARES OF NUMBERS 1 THROUGH 10\n\n");
    printf (" -Numbers---                         ---Squares- \n"); 
    printf ("-------------------------------------------------\n");   

    for (num2 = num + 1; num2 <= 10; exp = num2*num2)   
        {
        printf ("   %3d                                   %3d\n", num2, exp);
        printf ("  ----------------------------------------------\n");
             ++num2; 
        }
}

我确信解决方案很简单,但是经过数小时的重新编码后,我无法弄清楚。

4

1 回答 1

5

为什么 num 甚至存在?我会这样做,还将循环内容放在循环中而不是循环控制中——我相信这会使逻辑更容易:

int main (void)
{

    int num2, exp;

    printf ("\nPROGRAM TO DETERMINE SQUARES OF NUMBERS 1 THROUGH 10\n\n");
    printf (" -Numbers---                         ---Squares- \n"); 
    printf ("-------------------------------------------------\n");   

    for (num2 = 1; num2 <= 10; num2++)   
    {
        exp = num2*num2;
        printf ("   %3d                                   %3d\n", num2, exp);
        printf ("  ----------------------------------------------\n");
    }
}
于 2012-12-26T20:36:40.543 回答