【醒目】求助C语言帝~~~

【问题描述】编写一个程序,用户输入若干整数,试找出其中的最大数和最小数。
【输入形式】用户在第一行待输入数据个数,在第二行输入数据。
【输出形式】程序在下一行输出数据的最大值和最小值
【样例输入】
5
89 62 96 74 52
【样例输出】96 52
【样例说明】用户第一次输入的为数据个数,在下一行依次输入数据。输出为5个数中的最大值和最小值,输出时候两个数之间用空格分隔。

这是我的做法,帮忙看看哪儿出错了?
#include <stdio.h>
int main()
{
int x,n,m=0,max,min;
scanf("%d%d",&n,&x);
max=x;
min=x;
while(m<n)
{
scanf("%d",&x);
if(x>max)
max=x;
if(x<min)
min=x;
m++;
}
printf("%d %d",max,min);
return 0;
}

同学,按的程序看,第一个数已经在循环外面接受了输入,然后循环里面应该做的循环次数为n-1,你循环条件为0到n-1一共有n次,加起来就多了一次,你可以改一下循环调价,改成while(m<n-1)或者m初始化的时候赋值1
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-23
int x,n,m=0,max,min;
应改为
int x,n,m=1,max,min;
因为
scanf("%d%d",&n,&x);
已经读取了一个x的值,后面的循环只需要读取n-1个就可以了。