求救,这几行程序总不按照我的想法去执行。(各位行行好,我中了冲击波,无法复制粘贴,这些都是我手打出来的)
gcc编译
#include <stdio.h>
typedef struct
{
int data[10];
int last;
}list;
int main()
{
list m;
int number=5;
int p;
int i=3;
for(p=0;p<number;p++)
{
m.data[p]=p;
}
m.last=number;
for(p=m.last;p==i;--p) //-------------关键是这里,
m.data[p]=m.data[p-1]; //-------------不知到是不是这里不对。
for(p=0;p<10;p++)
{
printf("%d\n",m.data[p]);
}
m.data[i-1]=99;
m.last=m.last+1;
for(p=0;p<10;p++)
{
printf("%d\n",m.data[p]);
}
return 0;
}
输出结果是:
0 1 2 3 4 134513248 -1073742680....(省略3个输出)
0 1 99 3 4 134513248....(省略)
我想应该是把第五个元素移到第六个位置,第四个移到第五个位置.....
我期望结果是0 1 99 2 3 4.....,也就是插入一个元素,后面的依次向后移,可结果却不是这样,不知道是哪里出了问题。