#include
#include
#define ListSize 100
typedef struct
{
int data[ListSize];
int last; /*当前的表长度*/
}SeqList;
void CreateList(SeqList L,int n);
void PrintList(SeqList *L,int n);
void process(SeqList *L,int m,int n);
int main()
{
SeqList L;
int n=6;
L.last=0;
CreateList(&L,n); /建立顺序表*/
PrintList(&L,n);/*打印顺序表*/
printf("\n");
process(&L,2,4);
PrintList(&L,n);
return 0;
}
/*顺序表的建立:*/
void CreateList(SeqList *L,int n)
{
int i;
printf("请输入 n 数:\n");
for(i=1;i<=n;i++)
{
scanf("%d",&L->data[i]);
}
L->last=n;
}
/*顺序表的打印:*/
void PrintList(SeqList *L,int n)
{
int i;
printf("顺序表 is:\n");
for(i=1;i<=n;i++)
{
printf("%d ",L->data[i]);
}
}
/*交换数据*/
void process(SeqList *L,int m,int n)
{
int i,k,x;
if(m<=n)
for(i=1;i<=m;i++)
{
x=L->data[0];
for(k=1;k<=L->last;k++)
L->data[k-1]=L->data[k]; L->data[L->last]=x;
}
else for(i=1;i<=n;i++)
{
x=L->data[L->last];
for(k=L->last-1;k>=0;k--)
L->data[k+1]=L->data[k];
L->data[0]=x;
}
}
这是我的代码,为什么输出有一个数是随机的。比如输入:6 9 5 8 2 4
输出:5 8 2 4 0 6,
这是为什么。求大神解答