華為機(jī)試―去掉最大值、最小值后剩下的個(gè)數(shù)
來源:程序員人生 發(fā)布時(shí)間:2015-01-14 09:11:53 閱讀次數(shù):3469次
輸入1串?dāng)?shù),以','分隔,輸出所有數(shù)中去掉最大值、最小值以后剩下的個(gè)數(shù)。(其中最大值與最小值可能有多個(gè))
Sample input: 3,3,5,3,6,9,7,9
Sample output: 3
#include<stdio.h>
/*
解題思路:使用strtok分割函數(shù)分割字符串,統(tǒng)計(jì)最大最小的數(shù)字,
遍歷1遍數(shù)組,計(jì)算除最大最小的數(shù)字的個(gè)數(shù)
*/
#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
",count);
return 0;
}
測試數(shù)據(jù):3,3,5,3,6,9,7,9
測試結(jié)果:

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈