用C语言,写一个函数,用“起泡法”对输入的10个整数按由小到大顺序排列
时间: 2024-05-03 22:20:32 浏览: 10
好的,以下是代码:
```
void bubbleSort(int arr[], int n) {
int i, j;
for (i = 0; i < n-1; i++)
for (j = 0; j < n-i-1; j++)
if (arr[j] > arr[j+1])
swap(&arr[j], &arr[j+1]);
}
void swap(int *xp, int *yp) {
int temp = *xp;
*xp = *yp;
*yp = temp;
}
int main() {
int arr[10];
int i;
printf("请输入10个整数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
bubbleSort(arr, 10);
printf("排序后的结果:\n");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
请问还有什么我可以帮助你的吗?
相关问题
用c语言写一个程序:编写用起泡法对十个整数由小到大排序的函数,指针变量做函数的实参,在 主函数调用此函数。
好的,下面是用C语言实现使用冒泡排序算法对十个整数进行由小到大排序的函数:
```c
void bubbling_sort(int *arr, int len) {
int i, j, temp;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - 1 - i; j++) {
if (*(arr + j) > *(arr + j + 1)) {
temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}
}
}
}
int main() {
int arr[10] = {3, 9, 1, 8, 7, 5, 2, 4, 6, 0};
int len = sizeof(arr) / sizeof(arr[0]);
bubbling_sort(arr, len);
int i;
for (i = 0; i < len; i++) {
printf("%d ", *(arr + i));
}
return 0;
}
```
在这个程序中,我们定义了一个名为`bubbling_sort`的函数,它接受一个指向整数数组的指针和数组的长度。然后,我们使用冒泡排序算法对数组进行排序。最后,我们在`main`函数中声明一个大小为10的数组,并将其传递给`bubbling_sort`函数进行排序。最后,我们打印排好序的数组。
输出结果为:0 1 2 3 4 5 6 7 8 9,表示数组已经按照由小到大的顺序排好序了。
用起泡法给数组中十个整数从小到大排序 C语言
好的,下面是用起泡法给数组中十个整数从小到大排序的C语言代码:
```c
#include <stdio.h>
void bubble_sort(int arr[], int n);
int main() {
int arr[10] = {4, 2, 8, 1, 6, 9, 3, 7, 5, 0}; // 定义需要排序的数组
int n = sizeof(arr) / sizeof(arr[0]); // 数组的长度
bubble_sort(arr, n); // 调用排序函数
printf("排序后的数组:");
for (int i = 0; i < n; i++) { // 输出排序后的数组
printf("%d ", arr[i]);
}
return 0;
}
void bubble_sort(int arr[], int n) {
int tmp;
for (int i = 0; i < n - 1; i++) { // 外层循环控制排序轮数
for (int j = 0; j < n - i - 1; j++) { // 内层循环控制每轮比较次数
if (arr[j] > arr[j + 1]) { // 如果前一个数比后一个数大,则交换位置
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
```
代码中的 `bubble_sort` 函数实现了起泡排序算法,它通过内层循环比较相邻的两个数的大小,并根据需要交换它们的位置。外层循环控制排序的轮数,每轮排序结束后,最大的数就会被放到数组的最后面。这样,经过多轮排序后,整个数组就会被排序好。