编写程序,从键盘输入正整数

1、编写程序,从键盘输入正整数n代表字符串的行数(0<n<100000),然后再输入n行字符串,每行字符串长度小于100个字符,可能包含空格。将这些字符
串按从小到大的顺序输出。温馨提示,在线考试自动评测系统使用的是GCC48.5片本的编译器,从键盘读取一行字符串的函数建议使用fgets,本题中可以为fgets(t100stdin),其中t是保存读入字符串内存空间的首地址。输出一行字符串的函数建议使用fputs,本题中可以为fputs(tstdout);使用字符串比较库函数时,标准只是规定三个值:小于零,零,大于零。具体是什么值编译器自已定的,所以编程时候判断小于或者大于时,不能判断是否等于-1或者
1。
例如:输入3
bbbbbbbb CCCC aaaaa
输出 aaaaa
bbbbbbbb CCCC

如下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

int strcompare(char* s1,char* s2)
{
    while(*s1 != '\0' && *s2 != '\0')
    {
        if(tolower(*s1) > tolower(*s2))
            return 1;
        else if(tolower(*s1) < tolower(*s2))
            return -1;
        else
        {
            s1++;
            s2++;
        }
    }
    if(*s1 == '\0' && *s2 == '\0')
        return 0;
    else if(*s1 != '\0' && *s2 == '\0')
        return 1;
    else
        return -1;
}





int main()
{
    int i,j,n;
    char p[10000][101];
    char tmp[100];
    scanf("%d",&n);
    getchar();
    for(i=0;i<n;i++)
        fgets(p[i],100,stdin);
    //字符串比较
    for (i=0;i<n-1;i++)
    {
        for (j=0;j<n-i-1;j++)
        {
            if (strcompare(p[j],p[j+1])>0)
            {
                strcpy(tmp,p[j]);
                strcpy(p[j],p[j+1]);
                strcpy(p[j+1],tmp);
            }
        }
    }
    for (i=0;i<n;i++)
    {
        fputs(p[i],stdout);
    }
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632