江风与火 2022-01-16 16:57 采纳率: 50%
浏览 10

[编程入门]三个字符串的排序,可以通过样例,但是显示运行错误。

问题遇到的现象和发生背景

题目描述
输入三个字符串,按由小到大的顺序输出
输入
3行字符串
输出
按照从小到大输出成3行
样例输入
cde
afg
abc
样例输出
abc
afg
cde

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    char sta[10];
    char stb[10];
    char stc[10];
    scanf("%s %s %s", &sta, &stb, &stc);
    char* a = &sta;
    char* b = &stb;
    char* c = &stc;
    if (strcmp(a, b) == 1)
    {
        char* temp;
        temp = a;
        a = b;
        b = temp;
    }
    if (strcmp(a, c) == 1)
    {
        char* temp;
        temp = a;
        a = c;
        c = temp;
    }
    if (strcmp(b, c) == 1)
    {
        char* temp;
        temp = b;
        b = c;
        c = temp;
    }
    printf("%s\n%s\n%s", a, b, c);
    return 0;
}

  • 写回答

1条回答 默认 最新

  • _GX_ 2022-01-16 17:14
    关注
    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <string.h>
    int main()
    {
        char sta[10];
        char stb[10];
        char stc[10];
        scanf("%s%s%s", sta, stb, stc);
        char *a = sta;
        char *b = stb;
        char *c = stc;
        if (strcmp(a, b) > 0)
        {
            char *temp;
            temp = a;
            a = b;
            b = temp;
        }
        if (strcmp(a, c) > 0)
        {
            char *temp;
            temp = a;
            a = c;
            c = temp;
        }
        if (strcmp(b, c) > 0)
        {
            char *temp;
            temp = b;
            b = c;
            c = temp;
        }
        printf("%s\n%s\n%s", a, b, c);
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 1月16日