起泡法排序从小到大10个数C语言代码
时间: 2023-09-30 15:09:46 浏览: 39
好的,以下是使用C语言实现起泡法排序从小到大排列10个数的代码:
```c
#include <stdio.h>
int main()
{
// 定义原始数据
int data[10] = {4, 2, 1, 8, 5, 9, 3, 7, 6, 10};
int i, j, temp;
// 起泡法排序
for (i = 0; i < 9; i++)
{
for (j = 0; j < 9 - i; j++)
{
if (data[j] > data[j+1])
{
temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
}
}
}
// 输出排序后的结果
printf("排序后的结果为:");
for (i = 0; i < 10; i++)
{
printf("%d ", data[i]);
}
return 0;
}
```
同样是使用两层循环,第一层循环控制排序的轮数,第二层循环控制每轮中比较的次数。如果相邻的两个数不满足大小关系,则进行交换。最终输出排序后的结果。
相关问题
用起泡法给数组中十个整数从小到大排序 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` 函数实现了起泡排序算法,它通过内层循环比较相邻的两个数的大小,并根据需要交换它们的位置。外层循环控制排序的轮数,每轮排序结束后,最大的数就会被放到数组的最后面。这样,经过多轮排序后,整个数组就会被排序好。
c语言起泡法排序10个数
好的,这个问题是关于算法的问题。使用C语言可以使用起泡法对10个数进行排序,具体实现方式可以参考以下代码:
```c
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] = {5, 1, 9, 3, 7, 2, 8, 4, 6, 0};
int n = 10;
bubbleSort(arr, n);
printf("排序后的数组为: \n");
for (int i=0; i < n; i++)
printf("%d ", arr[i]);
printf("\n");
return 0;
}
```
通过起泡法排序,可以将10个数从小到大进行排序。希望这个答案可以帮助你解决问题。