博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
整数拼数 C语言版
阅读量:5091 次
发布时间:2019-06-13

本文共 1311 字,大约阅读时间需要 4 分钟。

题意是给出n个整数(整数是小于1000的)。求这些整数拼出来的最大或最小整数。

思路:类似与排序,只是排序的比较规则是若ab<ba 则a<b。

 

 

 
1
//
此文件实现将输入的n个数(数小于1000)组合成一个大数,比且这个大数是组合中最小的一个
2
 
3
#include
<
stdio.h
>
4
#include
<
stdlib.h
>
5
#include
<
string
.h
>
6
7
8
 
static
int
num_sort(
const
void
*
a,
const
void
*
b)
9
{
10
const
char
*
s1
=
*
((
const
char
**
)a);
11
const
char
*
s2
=
*
((
const
char
**
)b);
12
int
len1
=
strlen(s1);
13
int
len2
=
strlen(s2);
14
char
*
cs1
=
(
char
*
)malloc((len1
+
len2
+
1
)
*
sizeof
(
char
));
15
char
*
cs2
=
(
char
*
)malloc((len1
+
len2
+
1
)
*
sizeof
(
char
));
16
strcpy(cs1,s1);
17
strcpy(cs1
+
len1,s2);
18
strcpy(cs2,s2);
19
strcpy(cs2
+
len2,s1);
20
int
rt
=
strcmp(cs1,cs2);
21
free(cs1),free(cs2);
22
}
23
24
25
int
main()
26
{
27
int
n;
28
while
(
1
)
29
{
30
scanf(
"
%d
"
,
&
n);
31
if
(n
<=
0
)
32
break
;
33
char
**
nums
=
(
char
**
)malloc(n
*
sizeof
(
char
*
));
34
35
int
i;
36
37
for
(i
=
0
;i
<
n;i
++
)
38
{
39
40
nums[i]
=
(
char
*
)malloc(
4
*
sizeof
(
char
));
41
scanf(
"
%s
"
,nums[i]);
42
}
43
qsort(nums,n,
4
,num_sort);
44
45
for
(i
=
0
;i
<
n;i
++
)
46
{
47
printf(
"
%s
"
,nums[i]);
48
free(nums[i]);
49
}
50
printf(
"
\n
"
);
51
free(nums);
52
}
53
return
0
;
54
}
55

感觉C实现比C++不好的地方在于比较函数简洁度,这是由于string的操作都已经实现好了,还是站在巨人的肩膀上好啊。

转载于:https://www.cnblogs.com/wwillforever/archive/2010/10/26/1861287.html

你可能感兴趣的文章
Python-Web框架的本质
查看>>
QML学习笔记之一
查看>>
App右上角数字
查看>>
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
IdentityServer4-用EF配置Client(一)
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
IOS-图片操作集合
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>
测试计划
查看>>
Mysql与Oracle 的对比
查看>>
jquery实现限制textarea输入字数
查看>>