C语言将一个数组中偶数提取后,由高到低排列?

如题所述

以下是提取数组中的偶数,并且由高到低排列的C语言代码:

Copy code
#include <stdio.h>

void sort(int arr[], int n);

int main() {
int arr[] = {2, 4, 3, 7, 6, 8, 5};
int n = sizeof(arr) / sizeof(int);
int evenArr[n];
int evenCount = 0;

for (int i = 0; i < n; i++) {
if (arr[i] % 2 == 0) {
evenArr[evenCount] = arr[i];
evenCount++;
}
}

sort(evenArr, evenCount);

printf("Even numbers sorted in descending order: ");
for (int i = 0; i < evenCount; i++) {
printf("%d ", evenArr[i]);
}

return 0;
}

void sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (arr[i] < arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
首先,我们定义一个空的数组evenArr来存储提取出来的偶数,并用evenCount变量追踪存储在数组中的偶数的数量。我们使用for循环遍历原始数组arr,并将偶数存储在evenArr中。我们重用一个排序函数将evenArr按降序排序,并使用for循环打印已排序的偶数数组evenArr。

运行上面的代码将输出以下结果:

Copy code
Even numbers sorted in descending order: 8 6 4 2
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-03-10

,C语言将一个数组中偶数提取后,由高到低排列的一种可能的方法是:

    定义一个新的数组,用来存放偶数。

    遍历原数组,判断每个元素是否为偶数,如果是,则将其添加到新数组中。

    对新数组进行排序,可以使用冒泡排序、选择排序、插入排序等算法。

    输出新数组中的元素。

相似回答