[英]Why is first value of an C array and last value reversed without intention?
这是我的代码
#include<stdio.h>
#define MAX 10000
int main(){
int a[MAX], b[MAX], n;
scanf("%d", &n);
for(int i=0;i<n;i++){
int c, d, e, f;
scanf("%d%d%d%d", &c, &d, &e, &f);
if(f==e){
a[c]+=1;
a[d]+=1;
}
else{
if(f>e){
a[c]+=3;
}
else{
a[d]+=3;
}
}
}
for(int i=0;i<4;i++){
printf("%d ", a[i]);
}
return 0;
}
这是它的输入:
4
1 2 0 0
3 4 1 0
1 3 2 1
2 4 1 1
共有4场比赛,每场比赛有2支球队。 c 和 d 是输入变量,可以在 for 循环的每个输入语句中更改,它们帮助程序识别如果匹配的 c 和 d 是平局(for 循环),如果 c 是哪支球队加 1 分或 d 获胜,得 3 分,输者得 0 分。 要知道 c 或 d 是否获胜,e 和 f 是游戏分数,也可以在 for 循环的每个输入语句中更改。 例如:
scanf()
的返回值,否则您可能正在对未初始化的值进行操作。a
。e < f
那么我们想给a[d]
奖励积分。c
和d
是真正的标签,所以也许写一个 function 来提取标签数组并迭代这些标签。b
。a
、 c
、 d
、 e
和f
使您的代码难以阅读。 对于最后 4 个home
、 guest
、 home_score
、 guest_score
呢?#include <stdio.h>
#define MAX 10000
int main() {
int n;
if(scanf("%d", &n) != 1)
return 1;
int a[MAX] = { 0 };
for(int i=0; i<n; i++) {
int c, d, e, f;
if(scanf("%d%d%d%d", &c, &d, &e, &f) != 4)
return 1;
if(e < f)
a[d] += 3;
else if(f == e) {
a[c]++;
a[d]++;
} else
a[c] += 3;
}
for(int i=1; i<=4 ;i++)
printf("%d ", a[i]);
printf("\n");
}
和示例 session:
4
1 2 0 0
3 4 1 0
1 3 2 1
2 4 1 1
4 2 3 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.