注意:此为暴力求解,思路仅供参考
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);//第一次读入投票
int i,one=0,two=0,three=0,sum=1;//除i外,分别代表abc与总的票数
for(i=1;n!=-1;i++){
if(n==1){
one++;
}
if(n==2){
two++;
}
if(n==3){
three++;
}//以上为计算票数
scanf("%d",&n);//循环尾重新读入投票
sum++;//每一次循环加一次总票数
}
int b=one+two+three;
printf("A=%d\nB=%d\nC=%d\nTot=%d\n",one,two,three,b);
//先输出投票情况
int c[3]={one,two,three};
//将abc票数存入数组
int m,cnt=1;//cnt用来判断是否有人当选
for(m=0;m<3;m++){
if(c[m]>sum/2){//遍历数组判断当选情况
if(m==0){
printf("A-yes\n");
cnt=0;
}
if(m==1){
printf("B-yes\n");
cnt=0;
}
if(m==2){
printf("C-yes\n");
cnt=0;
}
}
}
if(cnt==1){
printf("all-NO\n");
}
//无人当选则输出
return 0;
}