问题指出:
您决定在全国拔河锦标赛的决赛上下注。
在比赛之前,球员的姓名和体重按球队交替呈现(队1球员1、队2球员1、队1球员2等)。双方球员人数相同。您记录球员的体重,因为他们提出,并计算出总重量为每支球队通知您的赌注。你可以写一个C程序来帮助你。
你的程序应该首先读取一个整数,表示每个团队的成员数量。然后,程序应该读取球员的体重(整数代表公斤)交替队。
在计算每个队的总重量后,程序应该显示文本“X队具有优势”(根据哪个队具有更大的总重量,将X替换为1或2)。
然后,您将显示文本“团队1的总重量:”,然后是团队1的重量,然后是“团队2的总重量:”,然后是团队2的重量(请参见下面的示例)。
你可以保证这两支球队的总重量不会相同。
我在一个在线编译器上做了这个,得到了正确的答案
#include<stdio.h>
int main(){
int nop, i, sum1, sum2;
int team1_Weight, team2_Weight, player1, player2, answer;
scanf("%d", &nop);
for (i=0;i<nop;++i){
scanf("%d", &player1);
team1_Weight=team1_Weight+player1;
scanf("%d", &player2);
team2_Weight=team2_Weight+player2;
}
sum1=team1_Weight;
sum2=team2_Weight;
answer=(sum1 > sum2);
if (answer){
printf("Team 1 has an advantage\n");
printf("Total weight for team 1: %d\n", sum1);
printf("Total weight for team 2: %d", sum2);
}else{
printf("Team 2 has an advantage\n");
printf("Total weight for team 1: %d\n", sum1);
printf("Total weight for team 2: %d", sum2);
}
}
字符串
当我提交这个作为答案时,我得到了这个:
编译错误:
7066839625989131.c: In function ‘main’:
7066839625989131.c:22:9: error: ‘team2_Weight’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
printf("Total weight for team 2: %d", sum2);
^
7066839625989131.c:21:9: error: ‘team1_Weight’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
printf("Total weight for team 1: %d\n", sum1);
^
cc1: some warnings being treated as errors
型
1条答案
按热度按时间jucafojl1#
正如注解中所指出的,您在初始化
team_weight1
和team_weight2
之前已经使用了它们。这些变量的初始值是不确定的,这使得程序的输出无法确定。可能是在线judge编译器给了这些你期望的值(可能是
0
),但这不能指望。解决方案就是显式地初始化它们。