请高手找程序错误,急!!!
开发一个排序程序,用户输入长度(数据个数)可变的数据,输入字母,则按字符排序;输入数字,则按数字排序;输入字母和数字的混合数据,则首先区分数字和字母,然后各自排序#include<iostream.h>
void sort(char[]);
void sort(int[]);
void sort1(char[]);
void sort1(int[]);
const int N=20;
void main()
{
char a[N],b[N],c[N],d[N]={'\0'},f[N]={'\0'};
cout<<"input the array:";
cin>>a>>b>>c;
sort(a);
sort(b);
sort1(d);
sort1(f);
int j=0,k=0;
for(int i=0;i<=N,j!='\0',k!='\0';i++,j++,k++)
if(c[i]>='0'&&c[i]<='9')
{
d[j]=c[i];
}
if((c[i]>='a'&&a[i]<='z')||(c[i]>='A'&&a[i]<='Z'))
{
f[k]=c[i];
}
cout<<"after sorted,the string is: "<<a<<"\t"<<b<<"\t"<<d<<"\t"<<f<<endl;
}
void sort(char x[])
{
char t;
for(int i=0;x[i];i++);
int length=i;
for(i=0;i<length-1;i++)
for(int j=0;j<length-1-i;j++)
if(x[j]<x[j+1])
{
t=x[j];
x[j]=x[j+1];
x[j+1]=t;
}
}
void sort(int x[])
{
int t;
for(int i=0;x[i];i++);
int length=i;
for(i=0;i<length-1;i++)
for(int j=0;j<length-1-i;j++)
if(x[j]<x[j+1])
{
t=x[j];
x[j]=x[j+1];
x[j+1]=t;
}
}
void sort1(char x[])
{
char t;
for(int i=0;x[i];i++);
int length=i;
for(i=0;i<length-1;i++)
for(int j=0;j<length-1-i;j++)
if(x[j]<x[j+1])
{
t=x[j];
x[j]=x[j+1];
x[j+1]=t;
}
}
void sort1(int x[])
{
int t;
for(int i=0;x[i];i++);
int length=i;
for(i=0;i<length-1;i++)
for(int j=0;j<length-1-i;j++)
if(x[j]<x[j+1])
{
t=x[j];
x[j]=x[j+1];
x[j+1]=t;
}
}