字符串排序
发布日期:2021-06-29 11:18:00
浏览次数:3
分类:技术文章
本文共 1717 字,大约阅读时间需要 5 分钟。
本题要求编写程序,读入5个字符串,按由小到大的顺序输出。
输入格式:
输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。输出格式:
按照以下格式输出排序后的结果:After sorted:
每行一个字符串输入样例:
red yellow blue green white
输出样例:
After sorted:bluegreenredwhiteyellow
思路一:用一个二维数组a[5][100]记录五个字符串,用b[5]记录对应字符串是否已经排序,用c[5]记录排序好的字符串下标。排序算法是拿一个未排序的字符与其他所有未排序的字符串依次比较,得到最小的字符串下标,记录到c[5]数组中,再将其记录为已排序。(算法比较繁琐)
#include#include int main() { char a[5][100]; int b[5] = { 0};//记录是否已经排序 int c[5];//记录排序好的下标 int i, j, min; for (i = 0; i < 5; i++) { scanf("%s", &a[i]); } for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { if (b[j] == 0) { //找到第一个未排序的字符串下标 min = j; break; } } for (j = 0; j < 5; j++) { if (b[j] == 0 && strcmp(a[j], a[min]) <= 0) { //找到最小的字符串的下标 min = j; } } c[i] = min;//记录下标 b[min] = 1;//标记已排序 } printf("After sorted:\n"); for (i = 0; i < 5; i++) { printf("%s\n", a[c[i]]); } return 0;}
思路二:使用指针数组p,让p数组的每个指针分别指向a数组的对应的行。通过选择排序算法排序得到结果。
#include#include int main() { char a[5][100]; char *p[5]; int i, j, min; for (i = 0; i < 5; i++) { scanf("%s", &a[i]); p[i] = a[i];//使p数组里的指针指向a数组的对应的行 } char *temp; //选择排序算法 for (i = 0; i < 4; i++) { min = i; for (j = i + 1; j < 5; j++) { if (strcmp(p[min], p[j]) > 0) { min = j; } } temp = p[i]; p[i] = p[min]; p[min] = temp; } printf("After sorted:\n"); for (i = 0; i < 5; i++) { printf("%s\n", p[i]); } return 0;}
转载地址:https://blog.csdn.net/zxc0074869/article/details/115188339 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月14日 16时33分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MyBatis 的执行流程,写得太好了!
2019-04-29
一顿骚操作!我将 SQL 耗时从 30248.271s 优化到 0.001s
2019-04-29
再见,杀毒软件之父,王江民!
2019-04-29
太赞了!这个5w字的《Java面试手册》PDF 一站封神!
2019-04-29
跨平台应用即将消亡!
2019-04-29
P0级重大事故:超卖了100瓶飞天茅台,整个项目组慌得一逼~
2019-04-29
你看得上瘾的斗鱼,首次开源了自家项目
2019-04-29
速来,清华毕业大牛分享出Redis实战视频及相关面试文档
2019-04-29
这些JAVA面试问题(第一问)
2019-04-29
java知识面试,这么题面试官很难不问到你,千万不要错过了
2019-04-29
Spring5新宠:PathPattern,AntPathMatcher:那我走?
2019-04-29
这15道关于MySQL的题目,不来看看就可惜了
2019-04-29
这十大JVM面试题你可不能再错过了,都是精华中的精华
2019-04-29
看看人家是怎样零基础来学习java到月入3W的!
2019-04-29
这到spring的面试题,我打赌,好多面试官都不知道
2019-04-29
关于JVM 夺命连环,你不来看看都可惜了
2019-04-29
我猜面试官大概率会这样刁难你(关于java的面试),这些看完你就不用担心了
2019-04-29
kvm配置
2019-04-29
lvs+keepalived高效性配置
2019-04-29
lnmp配置
2019-04-29