7-10 N05_二维数组_A_2020美国大选Trump VS Biden (10 分)

题目

2020年美国大选如火如荼的进行中,美国共和党和民主党作为两个主要政党分别推出Trump和Biden作为候选人. 但其实还有其他党派或无党派候选人若干.假设共有候选人M人.美国大选实现选举人制度,其要点如下:

  1. 每个州作为单独计票单位,每个州有特定的选举人票;
  2. 在该州获得选票最多的候选人获胜!且赢者通吃,就是由在该州获胜的候选人独得该州的选举人票.
  3. 统计每个候选人获得的选举人票,选举人票最多者当选总统! (程序不需要考虑选票数目相同的特殊情况,即候选人在同一个州选票各不相同)

假设美国2020选举共有M(<=20)个候选人,美国共有N个州(N<=100). 由你来编写程序统计选票并给出大选获胜者.


input: 第1行:输入候选人人数M,州数目N (M<=20,N<=100); 第2 ~ N+1行:输入每个州的选举人票数以及每位候选人的得票数(每个州占一行,每行1+M个整数);

output: 输出:获胜的候选人序号(总统候选人的序号从1开始到M结束)

input: 2 6 10 9000 900 8 800 700 70 12345 70567 6 5678 604 50 123450 70567 8 5678 6040

output: 90.00 80.00 70.00 60.00 75.00 75.00 2 2

输入格式

第1行:输入候选人人数M,州数目N (M<=20,N<=100); 第2 ~ N+1行:输入每个州的选举人票数以及每位候选人的得票数(每个州占一行,每行1+M个整数);

输出格式

输出:获胜的候选人序号(总统候选人的序号从1开始到M结束)

输入样例

2 6
10 9000 900
8 800 700
70 12345 70567
6 5678 604
50 123450 70567
8 5678 6040

输出样例

2

代码

#include<stdio.h>
int main(){
	int m,n;
	scanf("%d %d",&m,&n);
	int score[m][n];
	int renshu[n];
	int piaoshu[m];
	int max=0,max_n=0;
	int win=0,win_n=0;
	int a=0;
	for(int i=0;i<m;i++){
		piaoshu[i]=0;
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			if(a==0){
				scanf("%d",&renshu[i]);
				a=1;
			}
			scanf("%d",&score[j][i]);
		}
		a=0;
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			if(score[j][i]>max){
				max=score[j][i];
				max_n=j;
			}
		}
		piaoshu[max_n]=piaoshu[max_n]+renshu[i];
		max=0;
		max_n=0;
	}
	for(int i=0;i<m;i++){
		if(piaoshu[i]>win){
			win=piaoshu[i];
			win_n=i; 
		}
	}
	printf("%d",win_n+1);
	
	
	
	
	
}

留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注