C++;:试图比较两名球员的领先分数

C++;:试图比较两名球员的领先分数,c,C,下面的代码在第一行中输入N,告诉它轮数。下面的输入行是两列数据,其中包含每个球员在每场比赛中的得分。该代码比较每一轮累积频率的领先优势,然后宣布任何一轮领先优势最高的玩家为获胜者 问题是代码输出错误 #include <stdio.h> using namespace std; int main() { int N; scanf("%d", &N); int P1=0,P2=0,Lead1=0,Lead2=0; int a,b;

下面的代码在第一行中输入N,告诉它轮数。下面的输入行是两列数据,其中包含每个球员在每场比赛中的得分。该代码比较每一轮累积频率的领先优势,然后宣布任何一轮领先优势最高的玩家为获胜者

问题是代码输出错误

#include <stdio.h>
using namespace std;

int main() {
    int N;
    scanf("%d", &N);

    int P1=0,P2=0,Lead1=0,Lead2=0;
    int a,b;

    for(int i=1; i<=N;i++){
        scanf("%d, %d", &a, &b);
        P1+=a; P2+=b;
        if(P1-P2>Lead1){
            Lead1=P1-P2;
        }
        if(P2-P1>Lead2){
            Lead2=P2-P1;
        }
    }

    if(Lead1>Lead2){
        printf("%d, %d", 1, Lead1);
    }
    else{
        printf("%d, %d", 2, Lead2);
    }

    return 0;
}
#包括
使用名称空间std;
int main(){
int N;
scanf(“%d”和“&N”);
int P1=0,P2=0,导线1=0,导线2=0;
INTA,b;
对于(int i=1;iLead1){
导线1=P1-P2;
}
如果(P2-P1>导线2){
导线2=P2-P1;
}
}
如果(导线1>导线2){
printf(“%d,%d”,1,Lead1);
}
否则{
printf(“%d,%d”,2,Lead2);
}
返回0;
}

我想知道这是否是问题所在

scanf("%d, %d", &a, &b);
尝试删除第一个逗号

scanf("%d %d", &a, &b);

您的输入是逗号分隔的吗?如果没有,则scanf格式字符串中不应包含逗号。

对于哪些输入,您会得到错误的输出?您期望的输出是什么?您实际得到的输出是什么?您是否尝试过在调试器中逐步检查代码,以查看它何时何地出错?另外,请花一些时间刷新,以及。是的,显示一些示例输入、您看到的输出和您期望的输出。快速查看,我看不到错误,但是如果你发布一些数据,它可能会更明显。C++标签被删除,这里没有C++,只有C.@约翰<代码>使用命名空间STD;代码>…:)接受的答案说明了为什么您应该始终检查
scanf
的返回值。谢谢,这很有效。输入文件没有逗号,因此我从scanf中删除了逗号。