编译没有问题啊,为什么运行c语言时提示遇到问题需要关闭???程序在下面,大家帮忙啊

#include<stdio.h>
int main()
{
int a[10];
int i,x,y,m1=0,m2=0,t,p;
printf("输入数组的元素:\n");
for (i=0;i<10;i++)
scanf("%d",&a[i]);
for (i=0;i<10;i++)
{
if(a[i]>m1)
{
m1=a[i];
x=i;
}
}
for (i=0;i<10;i++)
{
if(a[i]<m2)
{
m2=a[i];
y=i;
}
}
t=a[0];
a[0]=m1;
a[x]=t;
p=a[10];
a[10]=m2;
a[y]=p;
printf("调整后为:\n");
for (i=0;i<10;i++)
printf("%d",a[i]);
return 0;
}

x,y需要赋初值,不然如果你的判断条件if(a[i]>m1)或者if(a[i]<m2)在for循环结束后都没有一个成立的话,x,y就没有地方给他们赋值,导致a[x],a[y]出现数组越界。
修改为x=0,y=0;
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答