注意:此为暴力求解,思路仅供参考

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