标题:求大佬帮忙看一下
只看楼主
he1527385048
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-5-27
结帖率:0
已结贴  问题点数:20 回复次数:1 
求大佬帮忙看一下
#include<stdio.h>
#include <string.h>
void swap(char *a,char *b)
{
    char* temp;
    temp= *a;
    *a= *b;
    *b=tem
}
int main()
{
    char a[20],b[20],c[20];
    printf("请输入三个字符串:\n");
    scanf("%s%s%s",a,b,c);
    char *p1=a,*p2=b,*p3=c;
    if(strcmp(p1,p2)>0) swap(p1,p2);
    if(strcmp(p1,p3)>0) swap(p1,p3);
    if(strcmp(p2,p3)>0) swap(p2,p3);
    printf("%s\n%s\n%s\n",p1,p2,p3) ;
    return 0;
}
各位大佬可以帮我看一下为什么不对吗,小白一个,如果有时间的话可以给我讲讲这个指针的地址啥的不
搜索更多相关主题的帖子: char strcmp include printf temp 
2020-05-27 20:51
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
得分:20 
函数 指针参数也是传值, 所以可以修改指向的值
程序代码:
#include<stdio.h>
#include <string.h>
void swap(char *a,char *b)
{
    char temp[20];
    strcpy(temp, a);
    strcpy(a, b);
    strcpy(b, temp);
}
int main()
{
    char a[20],b[20],c[20];
    printf("请输入三个字符串:\n");
    scanf("%s%s%s",a,b,c);
    char *p1=a,*p2=b,*p3=c;
    if(strcmp(p1,p2)>0) swap(p1,p2);
    if(strcmp(p1,p3)>0) swap(p1,p3);
    if(strcmp(p2,p3)>0) swap(p2,p3);
    printf("%s\n%s\n%s\n",p1,p2,p3) ;
    return 0;
}


[此贴子已经被作者于2020-5-27 21:57编辑过]

2020-05-27 21:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501832-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.440899 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved