输入n,表示输入n个字符串,然后对这些字符串进行排序

img

我看你图片写的一共三个,按这个写的


#include <stdio.h>
#include <string.h>
int main() {
    char a[3][128];   //定义二维字符数组
    char temp[128];   //定义用于交换的字符数组
    for(int i=0;i<3;i++){  //循环输入
        scanf("%s",a[i]);
    }
    for(int i=0;i<2;i++){
        for(int j=i+1;j<3;j++){
            if(strcmp(a[i],a[j])>-1){ //利用已有的函数进行比较a[i]和a[j]的大小,进行交换两个的内容
                strcpy(temp,a[i]);   //复制a[i]到temp中
                strcpy(a[i],a[j]);
                strcpy(a[j],temp);
            }
        }
    }
   for(int i=0;i<3;i++){         //循环输出
       printf("%s\n",a[i]);
   }
    return 0;
}

字符串排序,参考:


#include <stdio.h>
#include <math.h>
int main()
{
    char city[5][30] = {0},p[30];
    int i,j;
    for(i=0;i<5;i++)
        gets(city[i]);
    for(i=0;i<4;i++)
        for(j=0;j<4-i;j++)
        {
            if(strcmp(city[j],city[j+1])>0)
            {
                 strcpy(p,city[j]);
                 strcpy(city[j],city[j+1]);
                strcpy(city[j+1],p);
            }
        }
    for(i=0;i<5;i++)
        printf("%s\n",city[i]);
    return 0;
}