C语言对四个数按从大到小排序,不用冒泡排序
时间: 2024-05-05 15:19:03 浏览: 55
可以使用选择排序来实现。代码如下:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
void sort(int arr[], int n) {
int i, j, max_idx;
for (i = 0; i < n - 1; i++) {
max_idx = i;
for (j = i + 1; j < n; j++) {
if (arr[j] > arr[max_idx]) {
max_idx = j;
}
}
swap(&arr[i], &arr[max_idx]);
}
}
int main() {
int arr[] = {5, 8, 1, 3};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, n);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:8 5 3 1
相关问题
C语言对四个数按从大到小排序
可以使用冒泡排序或者选择排序来实现对四个数按从大到小排序的功能。以下是使用冒泡排序的一个示例代码:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void bubble_sort(int arr[], int size) {
int i, j;
for (i = 0; i < size - 1 ; i++) {
for (j = 0; j < size - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
swap(&arr[j], &arr[j + 1]);
}
}
}
}
int main() {
int arr[4] = {3, 7, 5, 1};
int i;
printf("Before sorting:\n");
for (i = 0; i < 4; i++) {
printf("%d ", arr[i]);
}
printf("\n");
bubble_sort(arr, 4);
printf("After sorting:\n");
for (i = 0; i < 4; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
Before sorting:
3 7 5 1
After sorting:
7 5 3 1
```
c语言输入四个数从小到大排序
在C语言中,对四个整数进行排序可以采用冒泡排序、选择排序、插入排序或快速排序等算法。这里提供一种简单的插入排序示例,它适用于小型数据集:
```c
#include <stdio.h>
void insertion_sort(int arr[], int n) {
int i, key, j;
for (i = 1; i < n; i++) {
key = arr[i];
j = i - 1;
// 将大于key的元素向右移动
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key; // 插入元素
}
}
int main() {
int num[4], i;
printf("请输入四个整数:");
for (i = 0; i < 4; i++) {
scanf("%d", &num[i]);
}
insertion_sort(num, 4);
printf("排序后的数组:\n");
for (i = 0; i < 4; i++) {
printf("%d ", num[i]);
}
return 0;
}
```
在这个程序中,用户先输入四个整数,然后`insertion_sort`函数将它们按升序排列。运行这个程序后,你会看到按照从小到大的顺序显示出来的结果。
阅读全文