鱼C论坛

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

这题快搞死我了

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

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

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

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

  26.         if(i != 10)
  27.         {
  28.                 for(;i<=9;i++)
  29.                         c[k++] = a[i];
  30.         }
  31.         if(j != 10)
  32.         {
  33.                 for(;j<=9;j++)
  34.                         c[k++] = b[j];
  35.         }
  36.         printf("c数组的元素为:\n");
  37.         for(k = 0;k<20;k++)
  38.                 printf("%-5d",c[k]);

  39.   return 0;
  40. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-4 16:48:54 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-4 16:50:22 | 显示全部楼层
  1. #include<stdio.h>
  2. void main()
  3. {
  4.         int a[10],b[10],c[20];
  5.         int i,j,k,ax;
  6.         printf("输入a数组的10个元素:\n");
  7.         for(i = 0;i<10;i++)
  8.                 scanf("%d",&a[i]);
  9.         printf("输入b数组的10个元素:\n");
  10.         for(i=0;i<10;i++)
  11.                 scanf("%d",&b[i]);
  12.         k=j=0;
  13.         for(i=0;i<20;i++)
  14.         {
  15.             if(i<10)
  16.             {
  17.                 c[i]=a[j];
  18.                 j++;
  19.             }
  20.             else if(i>=10)
  21.             {
  22.                 c[i]=b[k];
  23.                 k++;
  24.             }

  25.         }
  26.         for(i=0;i<20;i++)
  27.             for(j=0;j<20-i;j++)
  28.                 {
  29.                     if(c[k]>c[k+1])
  30.                         {
  31.                             ax=c[k];
  32.                             c[k]=c[k+1];
  33.                             c[k+1]=ax;
  34.                         }
  35.                 }
  36.         
  37.          for(i=0;i<20;i++)
  38.          {
  39.             printf("%d ",c[i]);
  40.          }


  41. }
复制代码
首先把a数组和b数组放到c数组中然后冒泡排序
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-4 16:50:56 | 显示全部楼层
lezhonzhen 发表于 2012-6-4 16:50
首先把a数组和b数组放到c数组中然后冒泡排序

首先把a数组和b数组放到c数组中然后冒泡排序.
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-4 17:10:52 | 显示全部楼层
lezhonzhen 发表于 2012-6-4 16:48
哥么你写的是错的,

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

本版积分规则

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

GMT+8, 2025-7-4 09:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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