代码已经通过了,但是不知道为什么要改,比如正确的代码一开始会输入一个n表示要输入n行测试数据,我定义i等于0,i小于n,然后用那个可以通过的代码测试,一直tm的少输出一行,必须把n改为n+1,才能通过
第四张图片标蓝的那一段代码,不写就输出10行,写上就输出9行,答案还都不对,if-else和单独用if为什么出来的结果不一样? 这到底是什么问题啊
//可以通过的代码
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int n;
cin >> n;
for(int i=0;i<n+1;i++){
char a[100];
int count=0;
fgets(a,100,stdin);
for(int j=0;j<100;j++){
if(a[j]=='\0') break;
if(a[j]!=' '){
count++;
}
if(a[j]==' ') break;
}
if(a[0]-a[count+1]==0)
cout << "Tie" << endl;;
if(a[0]-a[count+1]==1)
cout << "Player1" << endl;
if(a[0]-a[count+1]==-1)
cout << "Player2" << endl;
if(a[0]-a[count+1]==6)
cout << "Player2" << endl;
if(a[0]-a[count+1]==-6)
cout << "Player1" << endl;
if(a[0]-a[count+1]==5)
cout << "Player1" << endl;
if(a[0]-a[count+1]==-5)
cout << "Player2" << endl;
}
}
//不能通过的代码
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int n;
cin >> n;
for(int i=0;i<n+1;i++){
char a[100];
int count=0;
fgets(a,100,stdin);
for(int j=0;j<100;j++){
if(a[j]=='\0') break;
if(a[j]!=' ') count++;
if(a[j]==' ') break;
}
if(a[0]-a[count+1]==0){
cout << "Tie" << endl;;
}else if(a[0]-a[count+1]==1){
cout << "Player1" << endl;
}else if(a[0]-a[count+1]==-1)
cout << "Player2" << endl;
else if(a[0]-a[count+1]==6)
cout << "Player1" << endl;
else if(a[0]-a[count+1]==-6)
cout << "Player2" << endl;
else if(a[0]-a[count+1]==5)
cout << "Player1" << endl;
else if(a[0]-a[count+1]==-5)
cout << "Player2" << endl;
}
}