为什么程序运行的时候要重复输一次初始值?
pascal吧
全部回复
仅看楼主
level 1
白夜lyq 楼主
题目描述任意输入n个整数,把它们的最大值,最小值求出来.输入输入只有一行,包括一个整数n(1<=n<=20),后面跟着n个数.输出输出只有一行,包括2个整数。样例输入5 1 99 3 6 0样例输出99 0。写的程序如下:
program bsg;
var
n,x,max,min,i:longint;
begin
read(n);
read(x);
max:=x;
min:=x;
for i:=1 to n do
begin
read(x);
if x>max then max:=x;
if x<min then min:=x;
end;
writeln(max,' ',min);
end.
但运行时,输入值要重复输入两次。如输入:3 3 2 1 。回车后,没有直接运行,而是要再输入一遍3 3 2 1 ,才能得到正确结果,3,1。问题出在什么地方,怎么改呢?
2015年05月31日 14点05分 1
level 7
第九行改为for i:=2 to n do即可。
2015年06月01日 09点06分 2
[大拇指].请问一下,改成2是从已读取的数的下个数开始读,是吗?为什么1的时候系统会要求再输一次初始值呢?
2015年06月01日 09点06分
回复
����7506
:输入数据里有一个整数n和后面的n个数,共n+1个数。在for循环前已输入了2个数,剩下n-2个数未输入,所以for i:=2 to n do。
2015年06月01日 10点06分
2015年06月01日 13点06分
level 6
这么水的题也发
2015年06月02日 09点06分 3
1