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

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

题目描述
输入三个字符串,按由小到大的顺序输出
输入
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;
}

#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;
}