用户先输入N个数,再输入N个整数,请从小到大进行排序。用C语言编写
时间: 2024-03-20 08:42:15 浏览: 86
可以使用数组和冒泡排序的方法来对N个数进行从小到大排序,具体实现如下:
```c
#include <stdio.h>
int main() {
int n, temp;
printf("请输入N:");
scanf("%d", &n);
int arr[n];
printf("请输入%d个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
printf("从小到大排序后的结果为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
解释一下代码的实现逻辑:
1. 首先定义变量n和数组arr,n用来存储用户输入的数的个数,arr用来存储这些数。
2. 通过scanf函数获取用户输入的数n。
3. 定义一个长度为n的数组arr,并使用for循环和scanf函数获取n个整数存储到arr中。
4. 使用双重循环进行冒泡排序,外层循环控制排序的趟数,内层循环控制每一趟排序的次数,如果相邻两个数的大小顺序不正确,则交换这两个数的位置。
5. 使用for循环遍历排序后的数组arr,依次输出每个数。
6. 最后使用printf函数输出结果。
例如,如果用户输入N为5,5个整数分别为3、1、4、2、5,则程序输出结果为:
```
请输入N:5
请输入5个整数:3 1 4 2 5
从小到大排序后的结果为:1 2 3 4 5
```
阅读全文