C语言实现三个数排序,主函数输入输出。 Void Exchange_2(int *p,int *q) {} Void sort_3( ) {} Main()
时间: 2023-05-29 17:05:32 浏览: 95
实现代码如下:
```c
#include <stdio.h>
void Exchange_2(int *p, int *q) {
int temp = *p;
*p = *q;
*q = temp;
}
void sort_3(int *a, int *b, int *c) {
if (*a > *b) {
Exchange_2(a, b);
}
if (*a > *c) {
Exchange_2(a, c);
}
if (*b > *c) {
Exchange_2(b, c);
}
}
int main() {
int a, b, c;
printf("请输入三个数,以空格分隔:");
scanf("%d %d %d", &a, &b, &c);
sort_3(&a, &b, &c);
printf("排序后的结果为:%d %d %d", a, b, c);
return 0;
}
```
运行结果:
```
请输入三个数,以空格分隔:3 1 2
排序后的结果为:1 2 3
```
相关问题
用c语言实现冒泡排序和交换排序的代码
以下是使用C语言实现冒泡排序和交换排序的代码示例:
```c
// 冒泡排序
void bubble_sort(int arr[], int n) {
int i, j, temp;
for(i = 0; i < n - 1; i++) {
for(j = 0; j < n - 1 - i; j++) {
if(arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
// 交换排序
void exchange_sort(int arr[], int n) {
int i, j, temp;
for(i = 0; i < n - 1; i++) {
for(j = i + 1; j < n; j++) {
if(arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
```
其中,`arr`表示待排序的数组,`n`表示数组的长度。`bubble_sort`为冒泡排序函数,`exchange_sort`为交换排序函数。这两个函数都采用了嵌套循环的方式对数组进行排序。
输入一个3×3的二维整数矩阵,分别采用冒泡法、交换法编程实现对这9个数字从小到大进行排序,并输出。是有C语言
冒泡排序和交换排序是两种比较简单的排序算法,下面是C语言实现:
```c
#include <stdio.h>
// 冒泡排序
void bubble_sort(int arr[], int len) {
int i, j, tmp;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j+1]) {
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
// 交换排序
void exchange_sort(int arr[], int len) {
int i, j, tmp;
for (i = 0; i < len - 1; i++) {
for (j = i + 1; j < len; j++) {
if (arr[i] > arr[j]) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
}
int main() {
int arr[3][3];
int i, j, k = 0;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
scanf("%d", &arr[i][j]);
}
}
// 将二维数组转换为一维数组
int len = 3 * 3;
int arr1d[len];
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
arr1d[k] = arr[i][j];
k++;
}
}
// 冒泡排序
bubble_sort(arr1d, len);
printf("冒泡排序结果:\n");
for (i = 0; i < len; i++) {
printf("%d ", arr1d[i]);
}
printf("\n");
// 交换排序
exchange_sort(arr1d, len);
printf("交换排序结果:\n");
for (i = 0; i < len; i++) {
printf("%d ", arr1d[i]);
}
printf("\n");
return 0;
}
```
其中,输入的二维矩阵按行优先存储到一维数组中,然后对一维数组进行排序。输出时,将一维数组的结果转换为二维矩阵的形式输出即可。
阅读全文