关于用指针数组将字符串排序的问题

lanshanwoaini lanshanwoaini 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近在编一个小程序时用到了指针数组,但是不知道为什么错了,程序题目是这样的:
从键盘上输入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++;}
}


...全文
评论 10
收藏 已收藏
分享
返回顶部
lanshanwoaini
C语言 70,039 成员 243,237 内容