码迷,mamicode.com
首页 > 其他好文 > 详细

华为机试—去掉最大值、最小值后剩下的个数

时间:2015-01-03 01:00:05      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:华为

输入一串数,以‘,‘分隔,输出所有数中去掉最大值、最小值之后剩下的个数。(其中最大值与最小值可能有多个)


Sample input: 3,3,5,3,6,9,7,9  

Sample output:  3


#include<stdio.h>
/*
  解题思路:使用strtok分割函数分割字符串,统计最大最小的数字,
  遍历一遍数组,计算除最大最小的数字的个数
 */
#include<stdlib.h>
#include<string.h>
int main(int argc, char *argv[])
{
    char s[100];
    int a[100];
    int i=1;
    fgets(s,100,stdin);
    char *p=strtok(s,",");
    int start=atoi(p);
    a[0]=start;
    int _min=start;
    int _max=start;
    while(p=strtok(NULL,","))
    {
        int t=atoi(p);
        if(t>_max)_max=t;
        if(t<_min)_min=t;
        a[i++]=t;
    }
    int count=0;
    for(int j=0;j<i;++j)
    {
        if(a[j]!=_max&&a[j]!=_min)
            count++;
    }
    printf("%d\n",count);
    return 0;
}

测试数据:3,3,5,3,6,9,7,9

测试结果:

技术分享

华为机试—去掉最大值、最小值后剩下的个数

标签:华为

原文地址:http://blog.csdn.net/wdkirchhoff/article/details/42321303

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!