使用c语言从键盘输入n个非负整数(n>=2),利用冒泡排序法对其进行升序排序。
时间: 2024-12-05 10:15:23 浏览: 23
在C语言中,你可以创建一个程序来获取用户输入的n个非负整数,并使用冒泡排序算法进行升序排序。这里是一个简单的步骤和代码示例:
首先,在`main.c`或相关的源文件中,编写一个函数用于获取用户输入并初始化数组:
```c
#include <stdio.h>
#define MAX_N 100 // 设定最大输入数字数量
int nums[MAX_N];
void input_numbers() {
int n;
printf("请输入非负整数的数量(至少2个): ");
scanf("%d", &n);
if (n < 2) {
printf("请输入至少两个数。\n");
return;
}
for (int i = 0; i < n; i++) {
printf("请输入第 %d 个数: ", i + 1);
scanf("%d", &nums[i]);
while (nums[i] < 0) { // 确保输入是非负整数
printf("输入错误,请输入非负整数: ");
scanf("%d", &nums[i]);
}
}
}
```
接下来,在另一个函数中实现冒泡排序:
```c
void bubble_sort() {
int n = sizeof(nums) / sizeof(nums[0]); // 获取数组长度
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (nums[j] > nums[j + 1]) {
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
printf("排序后的数组:\n");
for (int i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
}
```
最后,在`main`函数中调用这两个函数:
```c
int main() {
input_numbers();
bubble_sort();
return 0;
}
```
运行这个程序,用户将输入一系列非负整数,然后按照升序排序。
阅读全文