输入3个字符串,按从小到大的顺序输出。要求使用指针的方法进行处理。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void swap(char** a,char** b)//输入的参数是二级指针(指针的地址)
{
    char* temp;//对指针(内容的地址)进行改变
    temp= *a;
    *a= *b;
    *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);
    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;
}


#include <stdio.h>
#include <math.h>
#include <string.h>

void swap(char **p1, char **p2) {
    char *temp;
    temp = *p1;
    *p1 = *p2;
    *p2 = temp;
}
int main()
{
    char str[3][20], *p[3];
    for(int i = 0; i < 3; i++) {
        scanf("%s", str[i]);
        p[i] = str[i];
    }
    for(int i = 0; i < 3; i++) {
        for(int j = 0; j < 2 - i; j++) {
            if(strcmp(p[j], p[j+1]) > 0) {
                swap(&p[j], &p[j+1]);
            }
        }
    }
    for(int i = 0; i < 3; i++) {
        printf("%s\n", p[i]);
    }
    return 0;
}


猜你喜欢

转载自blog.csdn.net/qq_41129306/article/details/94589987
今日推荐