輸入3個字符串,要求按由小到大的順序輸出


輸入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個字符串,要求按由小到大的順序輸出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM