Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么不管提供了什么输入,最后一个测试用例总是0_C++ - Fatal编程技术网

C++ 为什么不管提供了什么输入,最后一个测试用例总是0

C++ 为什么不管提供了什么输入,最后一个测试用例总是0,c++,C++,为什么最后一个测试用例的输出总是0,而与输入无关。这是针对Hackerearth的一个问题的解决方案,我在这方面花了很多时间,我无法理解为什么最后一个测试用例总是给出0的输出。当第一次输入相同的测试用例时,我得到了正确的答案或者产生输出0的相同输入给出了正确的答案。该代码适用于所有输入,但最后一个输入的顺序是正确的。有人能找出故障是什么吗 #include <bits/stdc++.h> typedef long long ll; using namespace std; int m

为什么最后一个测试用例的输出总是0,而与输入无关。这是针对Hackerearth的一个问题的解决方案,我在这方面花了很多时间,我无法理解为什么最后一个测试用例总是给出0的输出。当第一次输入相同的测试用例时,我得到了正确的答案或者产生输出0的相同输入给出了正确的答案。该代码适用于所有输入,但最后一个输入的顺序是正确的。有人能找出故障是什么吗

#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
int main()
{
    int i,j,t,n,p,g;
    cin>>t;
    while (t>0)
   {
      int p1=0,p2=0;
        string s[15];
        cin >>g>>p;
        cin >>n;
        for ( i = 0 ; i < n ; i++ )
        { 
           getline ( cin , s[ i ]);
           if (s[i][0] == '1')
              p1++; 
             if (s[i][2] == '1')
             p2++;   
        }
        if ((p1*g + p2*p) > (p1*p + p2*g))
            cout<<(p1*p + p2*g)<<endl;
        else 
            cout<<(p1*g + p2*p)<<endl;
            t--;
    }
    return 0;
}
#包括
typedef long-long-ll;
使用名称空间std;
int main()
{
inti,j,t,n,p,g;
cin>>t;
而(t>0)
{
int p1=0,p2=0;
字符串s[15];
cin>>g>>p;
cin>>n;
对于(i=0;i(p1*p+p2*g))

cout你的问题中唯一的小毛病是:不要使用
getline(cin,s[i]);
您需要使用
cin>>s[i][0]>>s[i][2];
我希望这将解决您的问题并获得所需的输出。
谢谢

可能与此无关,但是您的缩进会显示
t--
在else块中,而它不是…谢谢。但这不是问题所在。