题目描述:已知数组a中有m个按升序序排列的元素,数组b中有n个降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。
输入:输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m, n均小于等于1000000。
输出:输出合并后的m+n个整数,数据之间用空格隔开。输出占一行。
样例输入
4 1 2 5 7
3 6 4 2
样例输出
7 6 5 4 2 2 1
提示:试图排序的孩子们要小心了~~~~~~
注意事项:
(1)最重要:可以对输入型变量进行加减乘除,但是不能进行自加自减运算!!!也不能进行拆分!!!有必要就另设变量!!!
(2)变量在使用前一定要确定当前值无意义,如控制循环的i、j等。
(3)有序数组变倒序存储,可以使用原地逆置的方法。
代码:
#include <stdio.h>
int main(){
int m,n,i=0,j=0,k;
scanf("%d",&m);
int a[m];
while(i<m){
scanf("%d",&a[i++]);
}
scanf("%d",&n);
int b[n];
while(j<n){
scanf("%d",&b[j++]);
}
int c[n+m];
//原地逆置
for(i=0,j=
该博客介绍了一个C语言编程问题,涉及将两个有序数组——一个升序,一个降序——合并成一个降序数组。输入包括两个数组的元素,输出是合并后的降序数组。示例展示了如何处理输入和输出,提示中强调了处理输入变量的注意事项,并提到可以使用原地逆置的方法来实现有序数组的倒序存储。
订阅专栏 解锁全文
3036

被折叠的 条评论
为什么被折叠?



