错误原因不说了,给一份我刚写的吧:
#include
#define
N
20
void
main()
{
int
data[N];
int
num_min;
int
num_max;
//循环输入N个整数
for
(int
i
=
0;
i
<
N;
++i)
{
scanf_s("%d",
data+i);
}
num_min
=
data[0];
num_max
=
data[0];
//遍历一遍
for
(int
i
=
0;
i
<
N;
++i)
{
if
(num_min
>
data[i])
{
num_min
=
data[i];
}
if
(num_max
<
data[i])
{
num_max
=
data[i];
}
}
//输出最大与最小
printf("the
max
is:%d\nthe
min
is:%d",
num_max,
num_min);
}
PS:scanf_s是scanf的安全版本(VS2013版本)
好好想想你的for循环是怎么进行的。
第一次,m=0,执行输出“qingshuru:”,然后执行一次输入,将输入结果保存在x[0]中,这时x[1]中还没有数字,你就开始拿x[1]来作比较了,怎么能实现。。。
数组越界了啊,,,,你定义的数组是5个元素,最大到x[4],你仔细看看你的循环,当m=4时,你里边有x[m+1],没有这个元素啊...