2008 年北京奥运会,A 国的运动员参与了?n?天的决赛项目 (1≤n≤100)。现在要统计一下 A 国所获得的金、银、铜牌数目及总奖牌数。输入第?1?行是 A 国参与决赛项目的天数?n,其后?n?行,每一行是该国某一天获得的金、银、铜牌数目(不超过?100)。输出?4?个整数,为 A 国所获得的金、银、铜牌总数及总奖牌数。
第?1?行是 A 国参与决赛项目的天数?n,其后?n?行,每一行是该国某一天获得的金、银、铜牌数目,以一个空格分开。
输出?1 行,包括?4?个整数,为 A 国所获得的金、银、铜牌总数及总奖牌数,以一个空格分开。
输入 #1
3 1 0 3 3 1 0 0 3 0
输出 #1
4 4 3 11
这道题我们就需要用到一维数组了
小贴士:
一维数组,是由数字组成的以单纯的排序结构排列的结构单一的数组,是计算机程序中最基本的数组。二维及多维数组可以看作是一维数组的多次叠加产生的。
在程序中可以使用下标变量,即说明这些变量的整体为数组,数组中的每个变量的数据类型是相同的。
当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。
数组是计算机编程中的重要概念,运用数组可以方便地处理大规模的数据。
?而这道题,我们可以用以下代码来输入:
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i]>>c[i]; //因为它有三个类别,所以还要三个数组
}
接着,就是分类了,铜牌分一组计算,银牌分一组计算,金牌分一组计算,全部分一组计算,那代码就出来了:
#include<bits/stdc++.h>
using namespace std;
int n,a[1005],b[1005],c[1005],d=0,e=0,f=0; //s1计算金牌,s2计算银牌,s3计算铜牌
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i]>>c[i];
}
for(int i=1;i<=n;i++){
d+=a[i];
e+=b[i];
f+=c[i];
}
printf("%d %d %d %d",d,e,f,d+e+f);
return 0;
}