| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 397 人关注过本帖
标题:请教大家一个编程问题
只看楼主 加入收藏
兰姿惠芷
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-12
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
请教大家一个编程问题
有两个整型数组A(N),B(M)(N>0,M>0),且已知A(1)≥A(2)≥A(3)≥…≥A(N),  B(1)≥B(2)≥B(3)≥…≥B(M),请编写一段程序将数组A(N)与B(M)中的元素合并为一个新的数组C(M+N),且C(1)≥C(2)≥C(3)≥…≥C(N+M)(只限BASIC语言与C语言)


搜索更多相关主题的帖子: C语言 元素 
2011-09-12 22:42
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:10 
怎么看都像是作业嘛。
怎么到处都是这种归并的呀。
2011-09-12 22:46
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
写了一函数,简单测试了一下。
程序代码:
#include<stdio.h>
void merge(int *a,int *b,int m,int n,int *c)
{   
    while(m&&n)
    {
        if(*a>*b)
        {
            *c=*a;
            a++;
            c++;
            m--;
        }
        else
        {
            *c=*b;
            b++;
            c++;
            n--;
        }
    }
    for(;m>0;m--)
    {
        *c=*a;
        a++;
        c++;
    }
    for(;n>0;n--)
    {
        *c=*b;
        b++;
        c++;
    }
}

void main()
{
    int i;
    int A[5]={10,9,8,6,3};
    int B[3]={9,7,2};
    int C[8];
    merge(A,B,5,3,C);
    for(i=0;i<8;i++)
        printf("%d ",C[i]);
}
写的很怪,故意的
2011-09-12 23:06
leech58
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:18
专家分:58
注 册:2011-8-29
收藏
得分:10 
程序代码:
#include <stdio.h>
/**有两个整型数组A(N),B(M)(N>0,M>0),且已知A(1)≥A(2)≥A(3)≥…≥A(N), 

B(1)≥B(2)≥B(3)≥…≥B(M),请编写一段程序将数组A(N)与B(M)中的元素合并为
一个新的数组C(M+N),且C(1)≥C(2)≥C(3)≥…≥C(N+M)(只限BASIC语言与C语言)*/
void linkn(int *a,int *b,int n,int m,int *c)
{
    //1.先把a[n]和b[m]中的元素都放入c[]中
    int i,j,temp;
    for(i=0;i<m+n;i++)
    {
        if(i<n)
            *(c+i)=*(a+i);
        else
            *(c+i)=*(b+i-n);

    }
    //2.将c中的元素排序
    for(i=0;i<m+n;i++)
    for(j=0;j<m+n;j++)
    {
        if(*(c+i) > *(c+j))
        {
            temp=*(c+i);
            *(c+i)=*(c+j);
            *(c+j)=temp;
        }
    }
}

int main()
{
    int a[5]={6,4,3,2,1};
    int b[4]={7,6,5,0};
    int c[9];
    int i;
    linkn(a,b,5,4,c);
    for(i=0;i<9;i++)
        printf("%d ",c[i]);
    printf("\n");
}

这个自己写的  仅供参考哈

诚心交流!
2011-09-13 00:11
兰姿惠芷
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-12
收藏
得分:0 
谢谢各位啊
2011-09-13 11:27
快速回复:请教大家一个编程问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045149 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved