C语言练习题--洛谷P1012拼数

题目描述

设有 n 个正整数 a1​...an​,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。

输入格式

第一行有一个整数,表示数字个数 n。

第二行有 n 个整数,表示给出的 n 个整数 ai​。

输出格式

一个正整数,表示最大的整数

输入输出样例

输入 #1复制

复制代码
3
13 312 343

输出 #1复制

复制代码
34331213

输入 #2复制

复制代码
4
7 13 4 246

输出 #2复制

复制代码
7424613

说明/提示

对于全部的测试点,保证 1≤n≤20,1≤ai​≤109。

NOIP1998 提高组 第二题

cs 复制代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int compar(const void *a,const void *b)
{
	return strcmp((char*)a,(char*)b);
}
int main()
{
	int n,i;
	scanf("%d",&n);
	char str[25][25]={'\0'};
	for(i=0;i<n;i++)
	scanf("%s",str[i]);
	qsort(str,n,sizeof(str[0]),compar);
	for(i=n-1;i>=0;i--)
	{
	if(str[i][0]==str[i-1][0])
	{
	char c[25]={'\0'},a[25]={'\0'},b[25]={'\0'};
	strcpy(b,str[i-1]);
	strcpy(a,str[i]);
	if(strcmp(strcat(b,a),strcat(a,b))>0)
	{
	strcpy(c,str[i-1]);
	strcpy(str[i-1],str[i]);
	strcpy(str[i],c);	
	}	
	}	
	}
	for(i=n-1;i>=0;i--)
	printf("%s",str[i]);
	return 0;
}

利用qsort函数对二维字符串排序

相关推荐
稳兽龙1 分钟前
P4268 [USACO18FEB] Directory Traversal G
c++·算法·换根dp
放氮气的蜗牛18 分钟前
C++从入门到精通系列教程之第十篇:异常处理与调试技巧
开发语言·jvm·c++
亭墨37 分钟前
linux0.11内核源码修仙传第五章——内存初始化(主存与缓存)
linux·c语言·驱动开发·学习·缓存·系统架构
q5673152338 分钟前
用Go的resty库批量下载公开网站视频
开发语言·golang·音视频
Y雨何时停T1 小时前
深入理解 Java 虚拟机之垃圾收集
java·开发语言
愚润求学1 小时前
从零开始学C语言文件操作:理论与代码详解
c语言·开发语言·文件操作·语法
hamburgerDaddy11 小时前
golang 从零单排 (一) 安装环境
开发语言·后端·golang
小画家~1 小时前
第本章:go 切片
开发语言·后端·golang
我是大咖1 小时前
c语言笔记 一维数组与二维数组
c语言·笔记·算法
誓约酱1 小时前
(每日一题) 力扣 283 移动零
linux·c语言·数据结构·c++·算法·leetcode