编写c语言程序,输入20个数并存入数组,将下标值为偶数的元素按降序排列,输出该数组
时间: 2023-12-19 08:07:43 浏览: 115
以下是实现上述需求的C语言程序:
```c
#include <stdio.h>
// 交换两个元素
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int arr[20];
int i, j;
// 输入20个数并存入数组
printf("请输入20个数:\n");
for (i = 0; i < 20; i++) {
scanf("%d", &arr[i]);
}
// 将下标值为偶数的元素按降序排列
for (i = 0; i < 20; i += 2) {
for (j = i + 2; j < 20; j += 2) {
if (arr[i] < arr[j]) {
swap(&arr[i], &arr[j]);
}
}
}
// 输出该数组
printf("排序后的数组为:\n");
for (i = 0; i < 20; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
程序运行时,会依次提示输入20个数,并输出排序后的数组。其中,下标值为偶数的元素按降序排列。
相关问题
编写C语言程序,输入20个数并存入数组,将下标值为偶数的元素按降序排列,输出该数组。
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
int main() {
int arr[20], temp;
int i, j;
// 输入20个数并存入数组
printf("请输入20个数:\n");
for (i = 0; i < 20; i++) {
scanf("%d", &arr[i]);
}
// 对下标值为偶数的元素进行降序排列
for (i = 0; i < 20; i += 2) {
for (j = i + 2; j < 20; j += 2) {
if (arr[i] < arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
// 输出数组
printf("数组元素为:\n");
for (i = 0; i < 20; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
运行程序后,依次输入20个数,程序会将下标值为偶数的元素按降序排列,并输出整个数组。
编写C语言程序,输入20个数并存入数组,讲下标值为偶数的元素按降序排列,输出该数组
好的,以下是实现该需求的 C 语言程序:
```c
#include <stdio.h>
void selection_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
int max_idx = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] > arr[max_idx]) {
max_idx = j;
}
}
int temp = arr[i];
arr[i] = arr[max_idx];
arr[max_idx] = temp;
}
}
int main() {
int arr[20];
printf("请输入20个整数:\n");
for (int i = 0; i < 20; i++) {
scanf("%d", &arr[i]);
}
// 选出下标为偶数的元素并排序
int even_arr[10];
int even_count = 0;
for (int i = 0; i < 20; i += 2) {
even_arr[even_count++] = arr[i];
}
selection_sort(even_arr, even_count);
// 将排序后的偶数元素放回原数组
int even_idx = 0;
for (int i = 0; i < 20; i += 2) {
arr[i] = even_arr[even_idx++];
}
// 输出数组
printf("下标为偶数的元素按降序排列后的数组为:\n");
for (int i = 0; i < 20; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
程序的基本思路是:
1. 输入 20 个整数并存入数组 `arr` 中。
2. 选出下标为偶数的元素存入新数组 `even_arr` 中。
3. 对新数组 `even_arr` 进行降序排序。
4. 将排序后的偶数元素放回原数组 `arr` 中。
5. 输出原数组 `arr`。
可以看到,程序的关键是排序算法。我这里采用了选择排序,时间复杂度为 $O(n^2)$,不过因为这里只需要对 10 个元素排序,所以运行时间还是很快的。
阅读全文