我编写了这个程序并且工作正常。我得到了我想要的结果,但因为我们使用旧系统提交它,我的代码被拒绝,因为它说最后3行产生了我的代码的空白。有人可以告诉我问题出在哪里以及如何解决?谢谢!
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int i, row_nr;
cin >> row_nr;
if(row_nr > 1 && row_nr <= 30)
for(i = 1; i <= row_nr; i++)
{
for(int j = 0; j < row_nr; j++)
{
cout << i + j * (row_nr);
{
cout << " ";
}
}
cout << endl;
}
return 0;
}
答案 0 :(得分:0)
您在每个值之后输出一个空格,因此每行的末尾都会有一个空格。您应该添加一个检查,以便在每行的最后一个值之后不输出空格。看起来你可能打算这样做,但忘了写if语句。
#include <iostream>
//#include <iomanip> why?
using namespace std;
int main()
{
int row_nr;
cin >> row_nr;
if(row_nr > 1 && row_nr <= 30)
for(int i = 1; i <= row_nr; i++) //declare iterator variable in for loop statement
{
for(int j = 0; j < row_nr; j++)
{
cout << i + j * (row_nr);
if(j < row_nr - 1) //you forgot this line
{
cout << " ";
}
}
cout << '\n'; //endl flushes the buffer, unnecessary here
}
return 0;
}