用C语言写一个包含10 个数字的数组按大小排序
时间: 2024-05-02 19:20:28 浏览: 86
以下是使用基本的冒泡排序算法对包含10个数字的数组进行排序的C语言代码:
```
#include <stdio.h>
int main()
{
int arr[10] = {5, 2, 8, 1, 9, 3, 6, 4, 7, 0};
int i, j, temp;
// 冒泡排序
for (i = 0; i < 9; i++)
{
for (j = 0; j < 9 - i; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 输出排序后的数组
printf("排序后的数组为:\n");
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
排序后的数组为:
0 1 2 3 4 5 6 7 8 9
```
相关问题
C语言将一个数插入数组,并按大小输出
在C语言中,我们可以先创建一个动态数组,然后将新数值插入并排序后输出。这里有一个基本的例子,使用快速排序算法对包含新元素的数组进行排序:
```c
#include <stdio.h>
#include <stdlib.h>
// 快速排序函数
void quicksort(int arr[], int low, int high) {
if (low < high) {
int pivot = arr[high]; // 将最后一个元素作为基准
int i = (low - 1); // i用于记录小于基准的元素位置
for (int j = low; j < high; j++) {
// 如果当前元素小于或等于基准
if (arr[j] <= pivot) {
i++; // 移动i的位置
// 交换arr[i]和arr[j]
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
// 将基准元素放置在正确的位置(arr[i+1])
arr[i + 1] = pivot;
// 对基准左边和右边的部分分别递归调用quicksort
quicksort(arr, low, i);
quicksort(arr, i + 2, high);
}
}
int main() {
int size, num;
printf("请输入数组长度: ");
scanf("%d", &size);
// 创建动态数组
int* array = malloc(size * sizeof(int));
printf("请输入%d个元素:\n", size);
for (int i = 0; i < size; i++) {
scanf("%d", &array[i]);
}
// 插入新数值
printf("请输入需要插入的数字: ");
scanf("%d", &num);
array[size++] = num; // 动态扩容
// 排序数组
quicksort(array, 0, size - 1);
printf("排序后的数组: ");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
free(array); // 释放内存
return 0;
}
用c语言写一个冒泡排序
好的。首先,我们需要一个数组,让我们假设这个数组叫做`numbers`,它包含了要排序的数字。
接下来,我们需要一个双重循环。外层循环的控制变量我们叫做`i`,它的范围是从数组的第一个元素到倒数第二个元素(因为最后一个元素不需要比较)。内层循环的控制变量我们叫做`j`,它的范围是从数组的第二个元素到最后一个元素。
在循环中,我们比较`numbers[j]`和`numbers[j-1]`的大小。如果它们的顺序不对,就交换它们的位置。
综上,代码应该长这样:
```
#include <stdio.h>
int main(void) {
int numbers[] = {4, 5, 2, 1, 3}; // 要排序的数字
int i, j;
// 冒泡排序
for (i = 0; i < 4; i++) { // 外层循环
for (j = 1; j < 5; j++) { // 内层循环
if (numbers[j] < numbers[j-1]) {
int temp = numbers[j];
numbers[j] = numbers[j-1];
numbers[j-1] = temp;
}
}
}
// 输出排序后的数组
for (i = 0; i < 5; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
```
程序的输出应该是:1 2 3 4 5 。
希望这能帮到你。
阅读全文