读书人

这个求最值程序怎么回事

发布时间: 2012-02-12 17:16:34 作者: rapoo

这个求最值程序,咋回事?
#include "stdio.h "
void main()
{
int a[10];
int i=1,max,min;
scanf( "%d ",&a[0]);
max=min=a[0];
while(scanf( "%d ",&a[i])!=EOF)
{
if(max <a[i]) max=a[i];
if(min> a[i]) min=a[i];
i++;
}
printf( "The max value=%d\n ",max);
printf( "The min value=%d\n ",min);
}
键入10个数据后,无论按-1、回车、空格居然均无反应,错在哪里啊?郁闷……
将EOF改为‘\n’,按回车仍无反应,怪!!,高手帮下小弟啦
哪位详细解释下EOF的相关操作,~谢~


[解决办法]
while(!scanf( "%d ",&a[i]))
[解决办法]
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[10]={0};
int i=0,max,min;
scanf( "%d ",&a[0]);
max=min=a[0];
while(scanf( "%d ",&a[i]))
{
if(max <a[i]) max=a[i];
else if(min> a[i]) min=a[i];
if(++i==9)break;
}
printf( "The max value=%d\n ",max);
printf( "The min value=%d\n ",min);
system( "PAUSE ");
return 0;
}
[解决办法]
改成while(scanf( "%d ",&a[i])==1)怎么可能没反应
输入ctrl+z就可以(或者重起一行再输入)
明显和while(!scanf( "%d ",&a[i]))一样,最大最小也都没有问题
楼主用的什么编译器?
[解决办法]
普通情况下,scanf会等待输入,
要它返回EOF, 在Windows应该输入 Ctrl+Z

输入:
12 345 67 89 (回车)
^Z (Ctrl+Z 回车)
程序输出:
The max value=345
The min value=12

读书人网 >C++

热点推荐