
对于我们人眼来说,排序是一件非常简单的事情,但对于计算机就没那么友好了。
下面三个代码分别是我学c初期与现在分别写出的比较大小的方式
1.最好理解的方式,但是最写起来最麻烦!
#includeint main() { int Max,Min,Mid; scanf("%d %d %d",&Max ,&Mid ,&Min); if(Max>Mid){ if(Mid>Min){ printf("Max=%dnMid=%dnMin=%d",Max,Mid,Min); } else{ if(Max>Min){ printf("Max=%dnMid=%dnMin=%d",Max,Min,Mid); } else{ printf("Max=%dnMid=%dnMin=%d",Min,Max,Mid); } } } else{ if(Mid>Min){ if(Max>Min){ printf("Max=%dnMid=%dnMin=%d",Mid,Max,Min); } else{ printf("Max=%dnMid=%dnMin=%d",Mid,Min,Max); } } else{ printf("Max=%dnMid=%dnMin=%d",Min,Mid,Max); } } return 0; }
2. 选择排序:较难理解,可用于任意数字的比较大小,适用范围广!
#define _CRT_SECURE_NO_WARNINGS 1 #include#include #include #include #include int main() { printf("请输入要比较大小的个数:"); int n; scanf("%d", &n); int number[99999]; for (int i = 1; i <= n; i++) { scanf("%d", &number[i]); } for (int i = 1; i <= n; i++) //选择第i个数字同后面的数字进行比较 (外层循环,保证每个数字都同后面的数字比较了) { for (int j = i; j <= n; j++) //第i个数字开始同后面比较(内层循环,确定该位置数字为其后面数字中最大的那个) { //int max = number[i]; if (number[i] < number[j]) //若后面的数字大,则进行与第i个数字交换! { int t = number[i]; number[i] = number[j]; //int max = number[j]; number[j] = t; } } } for (int i = 1; i <= n; i++) //遍历数组,输出排序后的数组! { printf("%d ", number[i]); } return 0; } //该为选择排序,选择第一个数字同后面所有数字进行一一比较,若后面数字大,则进行交换位置,最后可以得出第一个数字为最大的一个! //第二个进行时同理,与第二个后比较,与大的一一交换,最后得出除第一个外最大的数!
该办法可以适用于多位数的比较!
(注:本文为原创作品,若无意侵权,请联系我。)
欢迎点赞 关注收藏 ⭐留言
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)