小Bob 小Bob Bob来啦

2020年10月26日 22:44 __ _ _ _ _

文章配图

点击这里关注”程序员Bob”

文章配图
文章配图

Success does not consist in never making mistakes but in never making the same
one a second time.成功并不在于从不犯错,而在于不重蹈覆辙。

文章配图

题目描述 设有 n个正整数 a1…an将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。
输入格式 第一行有一个整数,表示数字个数n。 第二行有n个整数,表示给出的n个整数。
输出格式 一个正整数,表示最大的整数。
输入输出样例 输入 3 13 312 343 输出 34331213

源代码:


#include<stdio.h>#define MAXl 10000#include<string.h>char t1[MAXl*2],t2[MAXl*2],a[MAXl][MAXl],b[MAXl]={0},c[MAXl];//字符数组t1,t2[将两字符数组以两种顺序组合(存入之临时数组)],//二维字符数组a(存放输入数据),字符数组c(临时存放一组字符,相当于冒泡排序中的t),//字符数组b(初始化为0,用于循环内初始化t1,t2);int o,n,i,j,l;//整型变量  o(存放字符串比较结果),n(存放字符串总个数),i、j(控制循环),l(临时存放字符数组长度,以组合数组)int main(){    scanf("%d", &n);    for (i = 0; i < n; i++)    {        scanf("%s", a[i]);//每次读入一组数据,赋予a[i]    }    for (i = 0; i < n; i++)//循环n次(将第i个数据与第j个数据进行比较,判断位置是否需要进行交换[进行交换])        for (j = i; j < n; j++)//循环n-i次(因为前面的i个已经作过比较,可以确保其位置恰当)        {            strcpy(t1, a[i]);//将a[i]拷贝进t1            strcpy(t2, a[j]);//将a[j]拷贝进t2            l = strlen(a[i]);//读取a[i]长度(有效字符之长度)            strcpy(t1 + l, a[j]);//将a[j]拷贝进t1(拷贝至l个字符后[避免覆盖])            l = strlen(a[j]);//读取a[j]长度(有效字符之长度)            strcpy(t2 + l, a[i]);//将a[i]拷贝进t2(拷贝至l个字符后[避免覆盖])            o = strcmp(t1, t2);//以字典序比较t1,t2大小,结果存入o(若t1>t2返回值>0)            if (o > 0)//如果o>0,就把a[i]与a[j]交换位置            {                strcpy(c, a[i]);//将a[i]拷贝给c                strcpy(a[i], a[j]);//将a[j]拷贝给a[i]                strcpy(a[j], c);//将c拷贝给a[j]            }//完成a[i]与a[j]位置交换            strcpy(t1, b);//将b拷贝给t1(起到初始化t1的作用[因为b初始化全部元素为0])            strcpy(t2, b);//将b拷贝给t2(起到初始化t2的作用[因为b初始化全部元素为0])        }    for (i = n - 1; i >= 0; i--)    {        printf("%s", a[i]);    }    return 0;}

运行结果:

文章配图

文章配图

**最后的话:****刷题要找自己的不足,然后去专攻。 ** ** ** ** 往期推荐: **

洛谷 || 最厉害的学生 2020-10-18
文章配图

Windows10下JDK8下载及java环境配置 2020-09-29
文章配图

IDEA下载及新建第一个Java项目(Helloworld) 2020-10-05
文章配图

为你,千千万万遍.

关注 程序员Bob 公众号,与你一起终生学习

文章配图

一键三连,就差你了
文章配图

预览时标签不可点

阅读




__