题解 | #数串#

数串

https://www.nowcoder.com/practice/a6a656249f404eb498d16b2f8eaa2c60

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

char a[110][1100];
int min(int a,int b)
{
    if(a>b)    
       return b;
       return a ;
}
int cmp(int x,int y)
{
    char b[1000],c[1000];//本来我在这里想直接对字符串a操作的,但是呢a是全局变量,后面还要输出
    strcpy(b,a[x]);
    strcpy(c,a[y]);
    int i,n1,n2;
     char str[1000];
     n1=strlen(a[x]);
     n2=strlen(a[y]);
     //字符串拼接
     for(i=n1;i<=n1+n2;i++) 
         b[i]=c[i-n1];
    for(i=n2;i<n1+n2;i++)
        c[i]=b[i-n2];
        c[i]='\0';
    return strcmp(b,c);
 } 
 int main(void)
 {
     int n,i,j;
     char jiaohuan[1000];
     while(~scanf("%d",&n))
     {
         for(i=0;i<n;i++)
             scanf("%s",a[i]);
         for(i=0;i<n-1;i++)
         {
             for(j=i+1;j<n;j++)
             if(cmp(i,j)<0)
             {
                 strcpy(jiaohuan,a[i]);
                 strcpy(a[i],a[j]);
                 strcpy(a[j],jiaohuan);
             }
         }
         for(i=0;i<n;i++)
             printf("%s",a[i]);
         printf("\n");
     }
     return 0;
 }

C语言基础 文章被收录于专栏

里面较为详细的介绍了c语言的相关用法和有关题目。

全部评论

相关推荐

听说改名字就能收到offer哈:Radis写错了兄弟
点赞 评论 收藏
分享
我已成为0offer的糕手:别惯着,胆子都是练出来的,这里认怂了,那以后被裁应届被拖工资还敢抗争?
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务