我一直在努力做这个程序但是我被困住了,我还是初学者,任何帮助都会受到赞赏。 我需要程序来做
我遇到的问题是当我尝试计算每个条目的行和列以及总和时。
每次我在嵌套for循环中进行任何计算时都会混乱。这里没有计算:
以下是计算:
代码:
#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;
}
答案 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