【发布时间】:2014-03-17 17:50:48
【问题描述】:
我有一个包含一堆数字的输入文件,例如:
3 7 10 21 8 4 9 2
并且我已经写了一些代码来记录最高和最低值:
#include<stdio.h>
main(){
int low;
int high;
int current;
char c;
scanf("%i", &low);
scanf("%i", &high);
while((c=getchar())!= '\n'){
scanf("%i", ¤t);
if(current < low){
low = current;}
else if(current > high){
high = current;}
}
printf("High: %i Low: %i \n",high,low);
}
现在我希望能够删除最高和最低并打印出其他数字。我的问题是,尝试使用哨兵值解决这个问题是否明智?制作一个循环的打印语句,如果命中了哨兵值,它什么也不打印?
【问题讨论】:
-
为了更好地解决这个问题,需要说明如何处理不是最小值/最大值的重复值,如何处理最小值/最大值的重复值。打印的订单是否需要与输入的订单相匹配?
标签: c printing io scanf sentinel