题目
2020年美国大选如火如荼的进行中,美国共和党和民主党作为两个主要政党分别推出Trump和Biden作为候选人. 但其实还有其他党派或无党派候选人若干.假设共有候选人M人.美国大选实现选举人制度,其要点如下:
- 每个州作为单独计票单位,每个州有特定的选举人票;
- 在该州获得选票最多的候选人获胜!且赢者通吃,就是由在该州获胜的候选人独得该州的选举人票.
- 统计每个候选人获得的选举人票,选举人票最多者当选总统! (程序不需要考虑选票数目相同的特殊情况,即候选人在同一个州选票各不相同)
假设美国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);
}