京东编程题,小东拉票

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值