用C语言,使用二维数组int[4][5]存储键盘输入的二十个整数,将这二十个数中的正整数先按顺序存储于另一个一维数组b[20]中,(先行后列顺序存储),使用冒泡排序对b中元素进行升序排序,并输出排序后结果
时间: 2024-02-12 09:06:29 浏览: 61
编写程序实现以下功能:从键盘输入十个整数,用冒泡法排序后按从小到大输出
好的,以下是使用C语言实现的代码:
```c
#include <stdio.h>
void bubble_sort(int arr[], int len) {
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int a[4][5];
int b[20];
int count = 0;
// 读入二十个整数并存储正整数到b中
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
scanf("%d", &a[i][j]);
if (a[i][j] > 0) {
b[count++] = a[i][j];
}
}
}
// 对b中元素进行升序排序
bubble_sort(b, count);
// 输出排序后的结果
printf("Sorted array: ");
for (int i = 0; i < count; i++) {
printf("%d ", b[i]);
}
return 0;
}
```
这段代码先定义了一个二维数组 `a` 来存储键盘输入的二十个整数,以及一个一维数组 `b` 来存储正整数。使用变量 `count` 来记录 `b` 数组中已经存储了多少个正整数。
然后使用双重循环来读入二十个整数,并且判断它是否为正整数。如果是正整数,就将它存储到 `b` 数组中,并且 `count` 自增。接着调用 `bubble_sort` 函数对 `b` 数组中的元素进行升序排序。
最后循环输出排序后的结果。
阅读全文