#include<stdio.h>
int main()
{
int n,a,b,num[1000],max,min;
scanf("%d",&n);
for(a=0;a<n;a++)
{
scanf("%d",&num[a]);
for(b=0;b<n;b++)
if(num[a]<num[b])
max=num[b];
}
for(a=0;a<n;a++)
for(b=0;b<n;b++)
{
if(num[a]>num[b])
min=num[b];
}
printf("%d",max-min);
return 0;
}
你这逻辑不对啊,第一个for循环里,还没给数组赋值完呢,而且比较的时候,应该用当前的数跟最大值或者最小值比较啊,不是用num[a]和num[b]比较啊。
代码修改如下:
#include<stdio.h>
int main()
{
int n,a,b,num[1000],max,min;
scanf("%d",&n);
for(a=0;a<n;a++)
{
scanf("%d",&num[a]);
}
max = num[0];
min = num[0];
for(a=1;a<n;a++)
{
if(num[a] > max) max = num[a];
if(num[a] < min) min = num[a];
}
printf("%d",max-min);
return 0;
}