C语言 gcc报错:无效内存引用问题

2025-05-10 09:17:55
推荐回答(3个)
回答1:

你把数组里的i<=10;改成i<10;#include
int main()
{
int a[10],i,j,k=0;
for(i=1;i<10;i++)
scanf("%d",&a[i]);
for(i=1;i<10;i++)
for (j=0;j<10-i;j++)
if (a[j]>a[j+1])
{
k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
for(i=1;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}

回答2:

#include
int main()
{
int a[10],i,j,k=0;
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(i=0;i<=9;i++)
for (j=0;j<=9-i;j++)
if (a[j]>a[j+1])
{
k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
for(i=0;i<=9;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
} 因为数组下标是从0开始的。所以改一下。 就好了。 你运行一下。有问题再问。

回答3:

数组下标引用是从 0 -- 数组长度-1