首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这个求最值程序,怎么回事

2012-02-12 
这个求最值程序,咋回事?#include stdio.h voidmain(){inta[10]inti1,max,minscanf( %d ,&a[0])max

这个求最值程序,咋回事?
#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

热点排行