用c语言编写一个程序 对数组a中的元素进行降序排列,存放到b数组中,要求不能改变a数组中的值
时间: 2024-03-07 07:46:49 浏览: 31
好的,以下是用C语言编写的程序,实现对数组a中的元素进行降序排列,存放到b数组中,同时不改变a数组中的值:
```c
#include <stdio.h>
#define SIZE 10 // 定义数组大小为10
void sort(int a[], int b[]);
int main() {
int a[SIZE] = {3, 1, 7, 5, 9, 2, 8, 4, 6, 0}; // 原始数组a
int b[SIZE]; // 存放降序排列后的数组b
int i;
sort(a, b); // 调用排序函数
printf("原始数组a:\n");
for (i = 0; i < SIZE; i++) {
printf("%d ", a[i]);
}
printf("\n降序排列后的数组b:\n");
for (i = 0; i < SIZE; i++) {
printf("%d ", b[i]);
}
return 0;
}
void sort(int a[], int b[]) {
int i, j, temp;
// 将原始数组a复制到数组b中
for (i = 0; i < SIZE; i++) {
b[i] = a[i];
}
// 冒泡排序,实现降序排列
for (i = 0; i < SIZE - 1; i++) {
for (j = 0; j < SIZE - i - 1; j++) {
if (b[j] < b[j + 1]) {
temp = b[j];
b[j] = b[j + 1];
b[j + 1] = temp;
}
}
}
}
```
运行以上代码,会输出原始数组a和降序排列后的数组b,如下所示:
```
原始数组a:
3 1 7 5 9 2 8 4 6 0
降序排列后的数组b:
9 8 7 6 5 4 3 2 1 0
```
注意,这里使用了冒泡排序算法实现降序排列。同时,为了不改变数组a中的值,我们在排序函数中先将数组a复制到数组b中,再对数组b进行排序。