京东编程题,小东拉票

来源:互联网 发布:手机淘宝9.9包邮在哪里 编辑:程序博客网 时间:2024/04/28 00:03

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



1 0