2012-12-26 26 views
-1

问题是,我试图显示一个表nn^2为数字1 - 10,这一切似乎除了第一组数字之外没什么问题。看起来这个程序,可能是由于我的编码不好,认为1 * 1 = 2。我尝试重新排列代码并使用不同的循环,但最接近的我可以得到的是正确显示所有其他数字,除了第一组。C语言,将变量乘以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; 
     } 
} 

我敢肯定,解决方法很简单,但重新编码了几个小时之后,我不能弄明白。

+10

那不是如何'for'应该被使用...... –

+3

我无法想象你是如何针对这样直接的要求提出这个问题的。 :S –

+0

使用调试器逐步跟踪执行情况会告诉你哪里出错。 –

回答

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"); 
    } 
} 
+0

为什么'exp'甚至存在? 'printf(“%3d%3d \ n”,num2,num2 * num2);';) –

+0

@KingsIndian - 你的观点很好 - 这是一个风格问题 - 我认为'exp'使程序更清晰'num'使它不太清楚。当然,我可以摆脱所有的变数,但我认为这并不明确。 – Hogan

+0

@霍根,这正是我想要它做的,谢谢! – stealthonion

相关问题