首页 > 代码库 > 华为机试—去掉最大值、最小值后剩下的个数

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

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


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

Sample output:  3


#include <stdio.h>

int main()
{
	int n,i=0;
	int a[100];

	scanf("%d",&n);
	while(getchar()!='\n')
	{
		a[i++]=n;
		scanf("%d",&n);
	}
	a[i++]=n;

	int min=a[0];
	int max=a[0];
	for(int j=0;j<i;j++){
		if(min>a[j])
			min=a[j];
		if(max<a[j])
			max=a[j];
	}

	printf("%d %d\n",min,max);

	int count=0;
	for(j=0;j<i;j++){
		if(a[j]!=min&&a[j]!=max)
			count++;
	}

	printf("%d\n",count);

	return 0;
}

测试结果,可能想的不周全,欢迎查漏补缺:

技术分享

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