c语言三个数比大小冒泡排序代码
时间: 2024-09-14 18:03:43 浏览: 51
在 C 语言中,你可以使用冒泡排序算法来比较并按升序排列三个数。冒泡排序是一种简单的排序算法,通过反复遍历数组,一次比较两个元素,如果它们的顺序错误就把它们交换过来。对于三个数的情况,由于可以直接比较,我们可以简化冒泡排序的过程。以下是代码示例:
```c
#include <stdio.h>
// 比较并交换三个数 a、b 和 c 的值
void compare_and_swap(int *a, int *b, int *c) {
if (*a > *b) {
int temp = *a;
*a = *b;
*b = temp;
}
if (*b > *c) {
int temp = *b;
*b = *c;
*c = temp;
}
}
int main() {
int num1, num2, num3;
printf("请输入三个整数:\n");
scanf("%d %d %d", &num1, &num2, &num3);
// 使用临时变量存储较大的数,避免直接修改原值
int temp;
// 冒泡过程,仅对前两个数进行比较和交换
for (int i = 0; i < 2; ++i) {
compare_and_swap(&num1, &num2, &temp); // 比较 num1 和 num2
if (num2 != temp) { // 如果 num2 已经变成最大,跳出循环
compare_and_swap(&num2, &num3, &temp);
}
}
// 输出结果
printf("经过排序后,最大的数是:%d\n", num3);
printf("中间的数是:%d\n", num2);
printf("最小的数是:%d\n", num1);
return 0;
}
```
阅读全文