c语言程序题:输入两个数列,再按从大到小的顺序合并成一个数列并输出

C语言程序题,写出完整程序:输入两个数列,再按从大到小的顺序合并成一个数列并输出... C语言程序题,写出完整程序:
输入两个数列,再按从大到小的顺序合并成一个数列并输出
展开
 我来答
吉祥二进制
高粉答主

2015-03-27 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84576

向TA提问 私信TA
展开全部

随便写了下,vc6.0能正常编译的,附件中打包了这个软件。代码如下:

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
//输入两个数列的大小
int a_size = 0, b_size = 0;
printf("input A arrrary size:");
scanf("%d", &a_size);
printf("input B arrary size:");
scanf("%d", &b_size);
//动态分配两个数列的内存
int *pa = (int *)malloc(sizeof(int) * a_size);
int *pb = (int *)malloc(sizeof(int) * b_size);
int *pc = (int *)malloc(sizeof(int) * (a_size + b_size));
if (pa==0 || pb == 0 || pc==0) {
printf("can't malloc mem\n");
return 0;
}
memset(pa, 0x00, sizeof(int) * a_size);
memset(pb, 0x00, sizeof(int) * b_size);
memset(pc, 0x00, sizeof(int) * (a_size + b_size));
//输入数列内容
int inx = 0;
for (inx=0; inx!=a_size; ++inx) {
scanf("%d", &pa[inx]);
}
for (inx=0; inx!=b_size; ++inx) {
scanf("%d", &pb[inx]);
}
//合并两个数列
memcpy(pc, pa, sizeof(int) * a_size);
memcpy(pc+a_size, pb, sizeof(int) * b_size);
 
//冒泡排序
int  i, j, limit = a_size + b_size;
for (i=0; i!=limit; ++i) {
for (j=i+1; j!=limit; ++j)
{
if (pc[i] < pc[j])
pc[i] ^= pc[j], pc[j] ^= pc[i], pc[i] ^= pc[j];
}
}
//输出结果
for (inx=0; inx!=limit; ++inx) printf("%d\t", pc[inx]);
printf("\n");
//释放内存
free(pa);
free(pb);
free(pc);
return 0;
}

执行效果如下图:


宿啥品8397
推荐于2018-03-08 · TA获得超过4530个赞
知道大有可为答主
回答量:3273
采纳率:60%
帮助的人:1799万
展开全部

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("请输入第一个数组的元素个数:\n");
    int as;
    scanf("%d",&as);
    printf("请输入元素:\n");
    int a[100];
    int i;
    for(i=0;i<as;i++)
    {
        scanf("%d",&a[i]);
    }
    printf("请输入第二个数组的元素的个数:\n");
    int sd;
    scanf("%d",&sd);
    printf("请输入元素:\n");
    for(i=as;i<as+sd;i++)
    {
        scanf("%d",&a[i]);
    }
    printf("排序后的结果是:\n");
    int k;
    int j;
    int t;
    for(k=0;k<as+sd;k++)
    {
        for(j=0;j<as+sd;j++)
        {
            if(a[k]>a[j])
            {
                t=a[k];
                a[k]=a[j];
                a[j]=t;
            }
        }
    }
    for(i=0;i<as+sd;i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式