鱼C论坛

 找回密码
 立即注册
查看: 3076|回复: 9

这题快搞死我了

[复制链接]
发表于 2012-6-4 09:44:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
有两个数组AB,数据均为10个(有正有负),并且都是从小到大存放,将两个数组的数据合并成一个数组C,也要从小到大存放数据。  怎么都搞不出,请高手帮忙!不胜感激!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-4 15:15:56 | 显示全部楼层
就是一个简单的排序问题而已,可以声明一个array[20];
然后把两个数组复制进去,冒泡排序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-4 15:28:43 | 显示全部楼层
c语言代码如下,仅供参考.
#include<stdio.h>
int main()
{
        int a[10],b[10],c[20];
        int i,j,k;
        printf("输入a数组的10个元素:\n");
        for(i = 0;i<10;i++)
                scanf("%d",&a[i]);
        printf("输入b数组的10个元素:\n");
        for(i=0;i<10;i++)
                scanf("%d",&b[i]);
        i = j = k = 0;
        while(i<10 && j< 10)
           if(a[i] <= b[j])
           {
                   c[k] = a[i];
                 i++;
                         k++;
           }
           else
           {
                   c[k] = b[j];
                   j++;
                   k++;
           }

        if(i != 10)
        {
                for(;i<=9;i++)
                        c[k++] = a[i];
        }
        if(j != 10)
        {
                for(;j<=9;j++)
                        c[k++] = b[j];
        }
        printf("c数组的元素为:\n");
        for(k = 0;k<20;k++)
                printf("%-5d",c[k]);

  return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-4 16:48:54 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-4 16:50:22 | 显示全部楼层
#include<stdio.h>
void main()
{
        int a[10],b[10],c[20];
        int i,j,k,ax;
        printf("输入a数组的10个元素:\n");
        for(i = 0;i<10;i++)
                scanf("%d",&a[i]);
        printf("输入b数组的10个元素:\n");
        for(i=0;i<10;i++)
                scanf("%d",&b[i]);
        k=j=0;
        for(i=0;i<20;i++)
        {
            if(i<10)
            {
                c[i]=a[j];
                j++;
            }
            else if(i>=10)
            {
                c[i]=b[k];
                k++;
            }

        }
        for(i=0;i<20;i++)
            for(j=0;j<20-i;j++)
                {
                    if(c[k]>c[k+1])
                        {
                            ax=c[k];
                            c[k]=c[k+1];
                            c[k+1]=ax;
                        }
                }
        
         for(i=0;i<20;i++)
         {
            printf("%d ",c[i]);
         }


}
首先把a数组和b数组放到c数组中然后冒泡排序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-4 16:50:56 | 显示全部楼层
lezhonzhen 发表于 2012-6-4 16:50
首先把a数组和b数组放到c数组中然后冒泡排序

首先把a数组和b数组放到c数组中然后冒泡排序.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-4 17:10:52 | 显示全部楼层
lezhonzhen 发表于 2012-6-4 16:48
哥么你写的是错的,

楼主说的是a数组和b数组本身是有序的~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-6-4 18:27:33 | 显示全部楼层
a数组,b数组本身就是有序的,不用管,主要是让C数组按从小到大排列。我刚学汇编,我想用汇编语言实现啊!哥们!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-6-4 18:30:07 | 显示全部楼层
用汇编语言表示!!哥们!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-4 19:48:58 From FishC Mobile | 显示全部楼层
晚上回去写给你……挺简单的一个程序,定义3个字节行数据段分别存放三个数组,第一,二个10个字节,存放你要加的数据,第三个是20个字节,将前两个数组内容复制到此内存中,然后冒泡……就可以了!循环的时候注意将cx入栈!自己试着编一下,至于冒泡法不知道的话就百度一下,挺简单的……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-20 07:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表