#define MaxSize 10
#include<stdio.h>
typedef struct
{
int data[MaxSize];
int length;
}SqList;
void InitList(SqList &L)
{
for(int i=0;i<MaxSize;i++)
L.data [i]=0;
L.length =0;
}
bool CreateList(SqList &L,int n)
{
if(n<0||n>MaxSize)
return false;
printf("请输入顺序表的数据:");
L.length =0;
for(int i=0;i<n;i++)
{
scanf("%d",&L.data [i]);
L.length++ ;
}
return true;
}
void Reverse(SqList &L)
{
int i=0;
int j=L.length-1;
int temp=0 ;
for(;i>=j;i++,j++){
temp = L.data[i];
L.data[i] = L.data[j];
L.data[j] = temp;
}
}
void printlist(SqList L)
{
printf("当前顺序表所有元素:");
int i;
for (i = 0; i<L.length ; i++)
{
printf("%d ", L.data[i]);
}
printf("\n");
}
int main()
{
SqList L;
InitList (L);
CreateList(L,6);
Reverse(L);
printlist(L);
}
这个逆置,不知道代码哪里出了问题,一直没想明白
void Reverse(SqList &L)
{
int i=0;
int j=L.length-1;
int temp=0 ;
for(;i>=j;i++,j++){
temp = L.data[i];
L.data[i] = L.data[j];
L.data[j] = temp;
}
}
循环中应该是j--和j>=i
for(;i>=j;i++,j++)这句问题。想不明白再说