嵌套for循环中的c ++计算

时间:2014-10-16 23:22:19

标签: c++

我一直在努力做这个程序但是我被困住了,我还是初学者,任何帮助都会受到赞赏。 我需要程序来做

  1. 打印10 X 10表,其中表中的每个条目是行号和列号的总和
  2. 包含一个累加器,用于计算所有表条目的总和。
  3. 我遇到的问题是当我尝试计算每个条目的行和列以及总和时。

    每次我在嵌套for循环中进行任何计算时都会混乱。这里没有计算:

    No Calculations

    以下是计算:

    With Calculations

    代码:

    #include <iostream>
    #include <iomanip>
    using namespace std;
    int main()
    {
        // r= row, c= column, s= sum(row+column), ts= sum of all entries   
        int r, c, s = 0, ts = 0;  
        for (r = 1; r <= 10; r++)
        {
            for (c = 1; c <= 10; c++)
            s = r + c; ** This one
            ts = ts + s; ** and this
    
            cout << setw(3) << c;
            cout << endl;
    
        }
        cout << "the total sum of all table entries is " << ts << endl;
        system("pause");
        return 0;
    }
    

3 个答案:

答案 0 :(得分:2)

我认为你需要将内循环括在大括号中,如下所示:

for (r = 1; r <= 10; r++)
{
    for (c = 1; c <= 10; c++)
    {
    s = r + c;
    ts = ts + s;

    cout << setw(3) << c;
    cout << endl;
    }
}

否则你只会运行

    s = r + c;

在内循环中。

答案 1 :(得分:2)

请注意,循环将重复下一个语句。当你这样做而没有计算&#34;时,我认为你的意思是

for (c = 1; c <= 10; c++)
    cout << setw(3) << c;
cout << endl;

此处,重复第一个cout语句并在第一个屏幕截图中打印出表格。 (注意这里的缩进表示代码是&#34;内部&#34; for循环。)

现在,当您添加计算时,您有

for (c = 1; c <= 10; c++)
    s = r + c; ** This one
    ts = ts + s; ** and this
    cout << setw(3) << c;

cout << endl;

即使您缩进显示打算重复的内容,程序也只会在for循环标题后面重复声明。在这种情况下,您反复重复计算s = r + c;。 (由于这个结果从未使用过,编译器很可能只会抛弃它。)

为了重复多个语句,你需要将它们包含在&#34;复合语句中#34;这意味着使用花括号:

for (c = 1; c <= 10; c++)
{
    s = r + c; ** This one
    ts = ts + s; ** and this
    cout << setw(3) << s;
}

cout << endl;

我还假设您要打印出行和列的总和。

我强烈建议您始终使用花括号,即使重复单个语句也是如此。这样可以更容易在循环中添加更多语句,因为您不必记得以后添加花括号。

答案 2 :(得分:1)

你的for循环需要一对花括号

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int r, c, s = 0, ts = 0;  // r= row, c= column, s= sum(row+column), ts= sum of all entries   
    for (r = 1; r <= 10; r++)
    {
        for (c = 1; c <= 10; c++) { // <- was missing
        s = r + c; ** This one
        ts = ts + s; ** and this

        cout << setw(3) << c;
        cout << endl;
        } // <- was missing

    }
    cout << "the total sum of all table entries is " << ts << endl;
    system("pause");
    return 0;
}

如果没有{},只有s = r + c会被视为for循环的一部分。

顺便提一下,这是导致转到失败错误的原因:http://martinfowler.com/articles/testing-culture.html