奥运奖牌计数

题目描述

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

你可能感兴趣的:(算法)