新人请教~C里比大小的问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 09:01:08
#include <stdio.h>
void main()
{
int i,n,a[10],j=a[0];

scanf("%d",&n);

for(i=0;i<n;i++)
{
scanf("%d",&a[i]);

if(a[i]<j)
j=a[i];
}
printf("%d",j);
}
哪错了~为什么结果会成负数,请指教。

问题出在j=a[0] 你还没有对a[0]赋值 所以他的值是随机不一定的
所以j的值也不一定

n是什么呢?

结果是负数是因为a[10],j=a[0],a[0]初始值就是个小的不能再小的负数了
后面再怎么比这个j都不可能会变了

麻烦把你的要求说清楚,这样没办法给你改,完全看不出来你的目的

你把if(a[i]<j)改成大于号,结果就是输入的最大值了

此外for(i=0;i<n;i++) 要改成for(i=0;i<10;i++)
数组长度就是10,你的n输入大了会出问题的