码迷,mamicode.com
首页 > 其他好文 > 详细

输入3个字符串,要求按由小到大的顺序输出

时间:2020-07-09 19:29:14      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:循环   strong   load   i+1   string   缓冲区溢出   ima   pause   数字   

输入3个字符串,要求按由小到大的顺序输出。

解题思路: 字符串的比较可以使用strcmp函数,返回值>0表示大于,返回值小于0表示小于,返回追等于0表示相同。其他的比较排序思路与数字的排序交换没有区别,逐个进行比较先找出最大的,然后找出第二大的。

答案:

#include <stdio.h>
int main()
{
	char str[3][32]; 
	char *p[3];
	printf("Please enter three strings:");
	for (int i = 0; i < 3; i++) {
		p[i] = str[i];
		scanf_s("%s", p[i], 32);//后边的数字限制缓冲区边界,防止缓冲区溢出访问越界
	}
    //让p[0]和p[1]/p[2]分别进行比较,找出最大的字符串,i+1之后,则让p[1]和p[2]进行比较,找出第二大
    //i循环总个数-1次,最后一个是不需要比较的
	for (int i = 0; i < 2; i++) {
		for (int j = i + 1; j < 3; j++) { 
			if (strcmp(p[i], p[j]) > 0) {
				char *tmp = p[i]; p[i] = p[j]; p[j] = tmp;
			}
		}
		
	}
	printf("%s %s %s\n", p[0], p[1], p[2]);
	system("pause");
	return 0;
}

技术图片

输入3个字符串,要求按由小到大的顺序输出

标签:循环   strong   load   i+1   string   缓冲区溢出   ima   pause   数字   

原文地址:https://www.cnblogs.com/weiyidedaan/p/13275327.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!