/*本题为模拟选班长,在1-4中选一个数投票,直到0结束为止, 要求1.如果直接按0,投票结束直接退出程序,2.显示出胜利者*/ #include <stdio.h> int xuanpiao(int num[]); void main() { static int num[4]; static int i,n,win; printf("注意!按'0'结束投票哦!\n请在(1~4)位候选人中投上您的一票:\n"); while(1) { scanf("%d",&n); if(n==1) num[0]++; else if(n==2) num[1]++; else if(n==3) num[2]++; else if(n==4) num[3]++; else if(n==0) { printf("投票结束!\n");break; } else printf("投票无效,请继续投票!"); } win=xuanpiao(num); printf("胜利者是:%d\n",win); }
int xuanpiao(int num[]) { static int max,i,xb; max=num[0]; for(i=1;i<4;i++) { if(max<num[i]) { max=num[i]; xb=i+1; } } return (xb); }
大家请运行一次,就知道问题所在了,1.输入0不投票,2.输入有并列多的票数.请指点此程序应该怎么改一下.