#include
#define N 5
int main()
{
int a[N],i,s;
for(i=0;i
{
scanf("%d",&a[i]);
}
for(i=N-1;i>=0;i--)
{
if(i==N-1)
{
s=a[i];
}
a[i+1]=a[i];
}
a[0]=s;
for(i=0;i
printf("a[%d]=%d ",i,a[i]);
return 0;
}变量堆栈损坏咋改
a[i+1]=a[i]; 这一行出问题了,第一次循环,i=N-1,a[i+1]就变成 a[N] ,数组越界了
问题原因分析: a[i+1]=a[i]; 这个语句中的i+1已经数组越界了。即当i的值为4的时候,a的下标是5,a[5]就造成数组越界。
修改: 在a[i+1]=a[i]前加上 “else ”,你再试一下。