帮我看下哪有问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 13:22:07
#include "stdio.h"
void main()
{
int i,min,n,a[10];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
min=a[0];
for(i=1;i<n;i++)
if(a[i]<min) min=a[i];
printf("%d\n",min);
}
可是我输入的范围在n<10
例如:1 2 3 4
输出:2
可就是输出2,错的

你输入的第一个数,代表你要向数组输入多少个数据scanf("%d",&n); 你的第一个数是1,表示你只要向数组输入一个数,那就是接着后面的2,那么你的数组你就只有一个2,最小的当然也就是2,这应该懂了吧

当n大于时数组a就越界了.

scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
你输入的第一个数是你要比较的个数;
后边几个是你要比较的数
你输入1,2,3,4
你想比较一个数,也不算错;

你输入3 5 1 9
就会输出1,是对的,你理解错了