关于用指针数组将字符串排序的问题
最近在编一个小程序时用到了指针数组,但是不知道为什么错了,程序题目是这样的:
从键盘上输入5个字符串(约定:每个字符串中字符数≤80字节),对其进行升序排序并输出。
程序中不能使用库函数stpcpy、strcat、strncat、strncpy、memcpy、strcpy、memicmp、memcmp、stricmp、strncmp、strncmpi、strnicmp、strcmp和strcmpi或使用同名的变量、函数、单词。
我写的程序如下,基本思路是用指针数组来解决,(排序是指按ASCLL值来排),我写的程序如下,请大家帮我看看,那个输入那里就有错,还有就是结果,谢谢:
#include "stdio.h"
void main()
{ void jiaohuan(char *b[],int n);
int bijiao(char *p1,char *p2);
char *a[5];
char m[5][80];
int i;
printf("请输入5个字符串:\n");
for(i=0;i<5;i++)
scanf("%s",a[i]);
jiaohuan(a,5);
for(i=0;i<5;i++)
printf("%s\n",a[i]);
}
void jiaohuan(char *b[],int n)
{
char *p;
int i,j,k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(bijiao(b[k],b[j])>0)k=j;
if(k!=i)
{p=b[i];b[i]=b[k];b[k]=p;}
}
}
int bijiao(char *p1,char *p2)
{
int i;
while(*p1&&*p2)
{
if(*p1>*p2){return 1;break;}
if(*p1<*p2){return 0;break;}
p1++;
p2++;}
}