对于我们人眼来说,排序是一件非常简单的事情,但对于计算机就没那么友好了。
下面三个代码分别是我学c初期与现在分别写出的比较大小的方式
1.最好理解的方式,但是最写起来最麻烦!
#include <stdio.h>
int main()
{
int Max,Min,Mid;
scanf("%d %d %d",&Max ,&Mid ,&Min);
if(Max>Mid){
if(Mid>Min){
printf("Max=%d\nMid=%d\nMin=%d",Max,Mid,Min);
} else{
if(Max>Min){
printf("Max=%d\nMid=%d\nMin=%d",Max,Min,Mid);
} else{
printf("Max=%d\nMid=%d\nMin=%d",Min,Max,Mid);
}
}
}
else{
if(Mid>Min){
if(Max>Min){
printf("Max=%d\nMid=%d\nMin=%d",Mid,Max,Min);
} else{
printf("Max=%d\nMid=%d\nMin=%d",Mid,Min,Max);
}
} else{
printf("Max=%d\nMid=%d\nMin=%d",Min,Mid,Max);
}
}
return 0;
}
2. 选择排序:较难理解,可用于任意数字的比较大小,适用范围广!
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#include<stdbool.h>
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;
}
//该为选择排序,选择第一个数字同后面所有数字进行一一比较,若后面数字大,则进行交换位置,最后可以得出第一个数字为最大的一个!
//第二个进行时同理,与第二个后比较,与大的一一交换,最后得出除第一个外最大的数!
该办法可以适用于多位数的比较!
(注:本文为原创作品,若无意侵权,请联系我。)
欢迎点赞 👍 关注收藏 ⭐留言 📝