zoukankan      html  css  js  c++  java
  • 输入3个字符串,按从小到大的顺序输出。要求使用指针的方法进行处理。

    include <stdio.h>

    include <stdlib.h>

    include <string.h>

    void swap(char** a,char** b)//输入的参数是二级指针(指针的地址)
    {
    char* temp;//对指针(内容的地址)进行改变
    temp= *a;//改变一件事,要传入它的地址,改变地址,就要传入地址的地址
    *a= *b;//地址和指针temp等同
    *b=temp;
    }

    int main()
    {
    char a[50],b[50],c[50];
    scanf("%s%s%s",a,b,c);//为什么不用空格 ?
    char p1=a,p2=b,p3=c;
    if(strcmp(p1,p2)>0) swap(&p1,&p2);// 要交换地址p1,所以swap中的参数是p1的地址
    if(strcmp(p1,p3)>0) swap(&p1,&p3);//为什么strcmp中不是
    p1,p1可以表示字符串吗??字符数组本来就是第一个字符的地址,p1=a
    if(strcmp(p2,p3)>0) swap(&p2,&p3);
    printf("%s %s %s ",p1,p2,p3);//p1=a,字符数组也用第一个字符的地址表示,所以可以用指针
    return 0;
    }

  • 相关阅读:
    SDOI2016游戏
    李超线段树
    SDOI2016数字配对
    SDOI2016储能表
    ! JOISC2020DAY3星座3
    JOISC2020DAY2有趣的 Joitter 交友
    第十天学习内容 函数
    第九天学习内容 结构体
    第八天学习内容 集合
    第七天学习内容 数组
  • 原文地址:https://www.cnblogs.com/DemoLi/p/13042227.html
Copyright © 2011-2022 走看看