题解 | #字符串排序#

字符串排序

http://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723

#include <stdio.h>
#include <string.h>
//字典顺序排列(AaBb - Zz,0-9顺序)
//冒泡排序 str flag  strcmp
//strcmp  ASCII顺序比较
//strcmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符
//若差值不为0 则将差值返回
int main()
{
	int n;
	scanf("%d", &n);
	char str[n][101];
	for (int i = 0; i < n; i++)
		scanf("%s", str[i]);
	char tmp[101];
	int flag;
	for (int j = n - 1; j >= 1; j--)
	{
		flag = 0;
		for (int i = 1; i <=j; i++)
		{
			if (strcmp(str[i - 1], str[i]) > 0)
			{
				strcpy(tmp, str[i - 1]);
				strcpy(str[i - 1], str[i]);
				strcpy(str[i], tmp);
				flag = 1;
			}
		}
		if (flag == 0)
			break;
	}

	for (int i = 0; i < n; i++)
		printf("%s\n", str[i]);

	return 0;
}
全部评论
要flag干嘛,立旗帜啊
点赞 回复 分享
发布于 2022-07-19 14:34
好办法
点赞 回复 分享
发布于 2022-02-12 21:17
很好奇,这个编译器竟然不报错,数组大小竟然可以给n?
点赞 回复 分享
发布于 2022-04-06 17:10
不错,👍
点赞 回复 分享
发布于 2022-04-18 20:59
怎么反映小写字母在大写字母后面啊
点赞 回复 分享
发布于 2022-08-06 20:17
char str[n][101]; ??????????? 数组大小用变量????????
点赞 回复 分享
发布于 2022-10-25 21:14 上海
二维数组:str[n][101] 二维数组中存有n个一维数组并且这n个一维数组都是含有101个char型的数组。
点赞 回复 分享
发布于 2023-02-16 14:46 陕西
请问为什么是str[n][101]和tmp[101]都是用101作为范围而不是100呢
点赞 回复 分享
发布于 2023-05-08 11:39 福建
if (flag == 0) break;这个语句感觉多了,不要也可以。 char str[n][101]; 数组行数居然使用变量,而且还可以通过,就离谱。 冒泡+strcmp
点赞 回复 分享
发布于 2023-12-28 22:02 四川
n是先赋值的,定义数组的时候n的值已经录入了,不是变量。
点赞 回复 分享
发布于 2024-03-22 13:11 天津
为什么不能用qsort函数?
点赞 回复 分享
发布于 2024-09-30 21:57 浙江
加flag是个加强版的冒泡排序
点赞 回复 分享
发布于 01-07 16:21 四川
不能加flag,这个肯定有bug,冒泡排序
点赞 回复 分享
发布于 01-07 16:22 四川

相关推荐

点赞 评论 收藏
分享
评论
23
7
分享

创作者周榜

更多
牛客网
牛客企业服务