c语言指针输入字符排序

输入三个字符串,字符串长度在20个字符以内,将输入的字符串按由小到大的顺序输出。
要求用指针的方式处理字符串
【输入形式】依次输入三个字符串,用回车作为分隔符
【输出形式】按由小到大的顺序输出
【样例输入】
This is a test.
Hello world!
I love C program.
【样例输出】
Hello world!
I love C program.
This is a test.


#include <stdio.h>
#include <string.h>
int main()
{
    char s1[20], s2[20], s3[20];
    gets(s1);
    gets(s2);
    gets(s3);
    if (strcmp(s1, s2) == 1 && strcmp(s2, s3) == 1)
    {
        puts(s3);
        puts(s2);
        puts(s1);
    }
    else if (strcmp(s1, s3) == 1 && strcmp(s3, s2) == 1)
    {
        puts(s2);
        puts(s3);
        puts(s1);
    }
    else if (strcmp(s2, s1) == 1 && strcmp(s1, s3) == 1)
    {
        puts(s3);
        puts(s1);
        puts(s2);
    }
    else if (strcmp(s2, s3) == 1 && strcmp(s3, s1) == 1)
    {
        puts(s1);
        puts(s3);
        puts(s2);
    }
    else if (strcmp(s3, s1) == 1 && strcmp(s1, s2) == 1)
    {
        puts(s2);
        puts(s1);
        puts(s3);
    }
    else if (strcmp(s3, s2) == 1 && strcmp(s2, s1) == 1)
    {
        puts(s1);
        puts(s2);
        puts(s3);
    }
    return 0;
}