求大神看看哪里不对

onethree07 2017-11-25 07:21:42
#include<stdio.h>
#include<string.h>
int main()
{
void exchange(char*p1,char*p2,char*p3);
char a,b,c,*p1,*p2,*p3;
p1=&a;p2=&b;p3=&c;
printf("原字符串:%s\n");
scanf("%s",&a,&b,&c);
exchange(p1,p2,p3);
printf("排序后字符串:%s",a,b,c);
return 0;
}
void exchange(char*p1,char*p2,char*p3)
{
char swap(char*p1,char*p2);
if(strcmp(*p1,*p2)>0) swap(*p1,*p2);
if(strcmp(*p1,*p3)>0) swap(*p1,*p3);
if(strcmp(*p2,*p3)>0) swap(*p2,*p3);
}
char swap(char*p1,char*p2)
{
char*t;
*t=*p1;
*p1=*p2;
*p2=*t;
}


...全文
140 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2017-11-27
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<string.h>

void exchange(char*p1,char*p2,char*p3);
int main()
{
    char a[32],b[32],c[32],*p1,*p2,*p3;
    p1=a;p2=b;p3=c;
    printf("原字符串:\n");
    scanf("%s%s%s", a, b, c);
    exchange(p1,p2,p3);
    printf("排序后字符串:%s %s %s\n",a,b,c);
    return 0;
}
char swap(char*p1,char*p2);

void exchange(char*p1,char*p2,char*p3)
{
    if(strcmp(p1, p2)>0) swap(p1,p2);
    if(strcmp(p1,p3)>0) swap(p1,p3);
    if(strcmp(p2,p3)>0) swap(p2,p3);
}
char swap(char *p1, char *p2)
{
    char t[32];
    strcpy(t, p1);
    strcpy(p1, p2);
    strcpy(p2, t);
}
字符串的含义还需要学习一下,基础知识还需要加强呢
ooolinux 2017-11-25
  • 打赏
  • 举报
回复
感觉楼主指针没有搞清楚,《深入理解C指针》这本书可以参考一下。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧