#include <stdio.h>
#include <mm_malloc.h>
#define MaxSize 100
typedef int ElemType;
typedef struct
{ ElemType data[MaxSize]; //存放顺序表元素
int length; //存放顺序表的长度
} SqList; //顺序表的类型
void CreateList(SqList *&L,ElemType a[],int n)
//建立顺序表
{
L=(SqList *)malloc(sizeof(SqList));
for (int i=0;i<n;i++)
L->data[i]=a[i];
L->length=n;
}
void InitList(SqList *&L)
{
L=(SqList *)malloc(sizeof(SqList)); //分配存放线性表的空间
L->length=0;
}
void move(SqList *&L)
{
int i=0,j=L->length-1,temp;
while(i<j)
{
while(L->data[i]<0)
i++;
while(L->data[j]>=0)
j--;
if(i<j) //交换L->data[i]与L->data[j]
{
temp=L->data[i];
L->data[i]=L->data[j];
L->data[j]=temp;
}
}
}
void DispList(SqList *&L)
{
for (int i=0;i<L->length;i++)
printf("%d ",L->data[i]);
printf("\n");
}
int main()
{
printf("请输入数组的长度:\n");
int n;
scanf("%d",&n);
int a[n];
int i;
printf("请输入数组元素:\n");
for(i=0;i<n;i++)
{
scanf("%d\n",&a[i]);
}
SqList *L;
CreateList(L, a, n);
InitList(L);
move(L);
DispList(L);
return 0;
}
输入完数组以后程序就结束了,麻烦大家指点一下。