我是不是错过了什么



我正试图解决网站上的一个问题,但它不让我通过,尽管在尝试了我自己的例子后,它运行得很好,所以我认为一定有它不起作用的情况,我似乎找不到这样的情况。

问题如下:第一行是数字输入的数字X。每个输入的第一行是数字Y,而第二行是必须求和的Y整正数。输出应该是那个总和。X和Y都是整数和正数。

我的C++代码:

#include <iostream>
using namespace std;
int main()
{
int no_of_inputs;
int input;
int table_dim;
int val;
int sum = 0;
cin >> no_of_inputs;
for (int i = 0; i < no_of_inputs; i++)
{
cin >> table_dim;
for (int i = 0; i < table_dim; i++)
{
cin >> val;
sum += val;
}
cout << sum<<endl;
}
}

您不会在行之间重置sum。如果您有1个以上的输入,则后面的输入将是错误的。

using namespace std;是一个可怕的习惯,改掉吧。

您正在内部循环中重新声明i。这不会破坏你的程序,但会让你很难理解。

#include <iostream>
int main()
{
int no_of_inputs;
std::cin >> no_of_inputs;
for (int i = 0; i < no_of_inputs; i++)
{
int table_dim;
std::cin >> table_dim;
int sum = 0;
for (int j = 0; j < table_dim; j++)
{
int val;
std::cin >> val;
sum += val;
}
std::cout << sum << std::endl;
}
}

最新更新