<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">输入有若干组,每组包括两行,每一行为一个正整数,表示候选者的数量,第二行为各候选者的选票数,小东要拉票才能的冠军,第一个是小东的选票数。</span>
输入如下 :
5
5 1 2 11 8
4
1 8 8 8
2
7 6
输出:
4
6
0
答题注意
1.输入数据是用空格隔开的,所以需要将字符串按照空格隔开,然后进行字符转化为数字。
直接上代码
//
// main.c
// 选举游戏
//
// Created by XXXXX on 16/4/8.
// Copyright © 2016年 cpc. All rights reserved.
//
#include <stdio.h>
#include <string.h>
int main()
{
int temp = 0;
int n;
int flag1 = 0,flag = 1;
int max,count=0;
scanf("%d",&n);
getchar(); //回车换行,无实际作用
if(n!=0){
int piao[n];
int i,j = 0;
char c;
while(j < n)
{
c = getchar();
if (c==' ')
{
piao[j] = temp;
temp = 0;
j++;
flag1 = 0;
}else if(c == '\n'){
flag1 = 1;
printf("beak");
break;
}else {
temp = temp*10 + (c-48) ; //转化字符为数字
flag1 = 1;
}
}
if (flag1) { //如果最后一个输入不是空格,进行赋值
piao[j] = temp;
}
for (i =0; i<n; i++) {
printf("piao[%d] = %d \n",i,piao[i]);
}
while(flag != 0){
flag = 0;
max = 0;
for (i = 1;i<n;i++){
if (piao[max] <= piao[i]) {
max = i;
}
}
if(max != 0){
flag = 1;
count ++;
piao[max]--;
piao[0]++;
}
}
printf("%d\n",count);
scant("%d",&n);
}
return 0;
}