首页 > 代码库 > 关于特定格式输入的巧妙操作

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

华为上机题目之一:

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

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

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 }