原题链接:[编程入门]三个字符串的排序
解题思路:用if else结构不断地比较大小,我主要用了二维数组,但是也可以用三个一维数组
注意事项:不要忘记你是要从小到大排序还是从大到小排序,也不要漏掉任何一种排序的可能
参考代码:
#include<stdio.h> #include<string.h> int main() { char a[3][100]; char b[3][100]; int i; for(i=0;i<3;i++) gets(a[i]); if(strcmp(a[0],a[1])>0) { if(strcmp(a[2],a[0])>0) { strcpy(b[0],a[2]); strcpy(b[1],a[0]); strcpy(b[2],a[1]); strcpy(a[0],b[0]); strcpy(a[1],b[1]); strcpy(a[2],b[2]); } else { if(strcmp(a[2],a[1])>0) { strcpy(b[0],a[2]); strcpy(a[2],a[1]); strcpy(a[1],b[0]); } } } else { if(strcmp(a[2],a[1])>0) { strcpy(b[0],a[2]); strcpy(b[1],a[1]); strcpy(b[2],a[0]); strcpy(a[0],b[0]); strcpy(a[1],b[1]); strcpy(a[2],b[2]); } else { if(strcmp(a[2],a[0])>0) { strcpy(b[0],a[1]); strcpy(b[1],a[2]); strcpy(b[2],a[0]); strcpy(a[0],b[0]); strcpy(a[1],b[1]); strcpy(a[2],b[2]); } else { strcpy(b[0],a[1]); strcpy(b[1],a[0]); strcpy(b[2],a[2]); strcpy(a[0],b[0]); strcpy(a[1],b[1]); strcpy(a[2],b[2]); } } } for(i=2;i>=0;i--) printf("%s\n",a[i]); return 0; }
方法太笨,不建议各位学习,放到这里仅作为对我的一种警示
0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复