华为上机题目之一:
输入一串数,以‘,’分隔,输出所有数种去掉最大值、最小值之后剩下的个数。
(其中最大值与最小值可能有多个)
Sample input 3,3,5,3,6,9,7,9 Sample outPut:3
这里在输入的时候是一串,不知道有多少个,并且要以','隔开。所以结束标志选用换行符' ',而‘,’又单独一个字符来接受。具体代码如下:
1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int a[100],n=0,i,temp,min,max; 6 char c='0'; 7 max=0;min=100; 8 while(c!=' ')//如果没有换行则一直接收 9 { 10 scanf("%d",&temp); 11 a[n]=temp; 12 if(temp>max) max=temp; 13 if(temp<min) min=temp; 14 n++; 15 scanf("%c",&c);//接收逗号或者换行符 16 } 17 temp=0; 18 for(i=0;i<n;i++) 19 { 20 if(a[i]<max && a[i]>min) temp++; 21 } 22 printf("%d",temp); 23 return 0; 24 }