首页 > 解决方案 > 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;

    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;
}

标签: c

解决方案


我想知道这是不是问题

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

尝试删除第一个逗号

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

您的输入逗号是否分隔?如果不是,那么您的 scanf 格式字符串中不应该有逗号。


推荐阅读