求助帖~~关于数据结构的一个程序调试问题
小弟刚学数据结构,在调试程序的时候出了一些问题,输出的时候是乱码~~~求指点题意为:以第一个元素为分界线,将所有小于它的元素移到该元素的前面,将所有大于它的元素移到该元素后面
#include <stdio.h>
#include <malloc.h>
#include <iostream>
using namespace std;
#define maxsize 50
typedef int ElemType;
typedef struct
{
ElemType data[maxsize];
int length;
}SqList;
void CreateList(SqList *&L,ElemType a[],int n)
{
int i;
L=(SqList *)malloc(sizeof(SqList));
for(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 movel(SqList *&L)
{
int i=0;
int j;
j=L->length-1;
ElemType pivot=L->data[0];
ElemType tmp;
while(i!=j)
{
while(j>i&&L->data[j]>pivot)
j--;
while(i<j&&L->data[i]<pivot)
i++;
if(i<j)
{
tmp=L->data[i];
L->data[i]=L->data[j];
L->data[j]=tmp;
}
}
}
int ListEmpty(SqList *L)
{
return(L->length==0);
}
void DispList(SqList *L)
{
int i;
if(ListEmpty(L))
return;
for(i=0;i<L->length;i++)
printf("%c",L->data[i]);
printf("\n");
}
void main()
{
SqList *ha;
InitList(ha);
ElemType a[50];
int i,n;
cout<<"请输入一个n=";
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
CreateList(ha,a,n);
movel(ha);
DispList(ha);
}
谢谢了