关于特定格式输入的巧妙操作

华为上机题目之一:

输入一串数,以‘,’分隔,输出所有数种去掉最大值、最小值之后剩下的个数。

(其中最大值与最小值可能有多个)

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

这里在输入的时候是一串,不知道有多少个,并且要以','隔开。所以结束标志选用换行符'\n',而‘,’又单独一个字符来接受。具体代码如下:

 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!='\n')//如果没有换行则一直接收
 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 }

 

posted on 2014-07-12 11:01  笑侃码农  阅读(172)  评论(0编辑  收藏  举报