输入有若干组,每组包括两行,每一行为一个正整数,表示候选者的数量,第二行为各候选者的选票数,小东要拉票才能的冠军,第一个是小东的选票数。
话不多说,大家这么捉急,题目自己看,直接上代码了
#include <stdio.h>
#include <string.h>
int qiangpiao(int personNum,int piao[])
{
int flag=1,i,maxIndex,count=0; //flag=1表示是最大的
while(flag){
flag=0;
maxIndex=0;
for(i=1;i<personNum;i++){
if(piao[maxIndex]<=piao[i]){
maxIndex=i;
}
}
if(maxIndex!=0){
flag=1;
count++;
piao[maxIndex]--;
piao[0]++;
}
}
return count;
}
int main()
{
int personNum;
scanf("%d",&personNum);
while(personNum!=0){
int piao[personNum];
int i;
for(i=0;i<personNum;i++)
{
scanf("%d",&piao[i]);
}
// for(i=0;i<personNum;i++)
// printf("%d ",piao[i]);
printf("%d\n",qiangpiao(personNum,piao));
scanf("%d",&personNum);
}
return 0;
}
结果图