| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1423 人关注过本帖
标题:在数组中插入一个数字(求大神)
只看楼主 加入收藏
ZaneZaneZane
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-4-22
结帖率:0
收藏
已结贴  问题点数:20 回复次数:12 
在数组中插入一个数字(求大神)
题目描述
已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。

输入要求
第一行,原始数列。 第二行,需要插入的数字


输出要求
排序后的数列


假如输入
1 7 8 17 23 24 59 62 101
50

应当输出
1
7
8
17
23
24
50
59
62
101

求大神教!
搜索更多相关主题的帖子: 元素 
2015-04-22 16:51
纳兰伽香
Rank: 10Rank: 10Rank: 10
来 自:北京
等 级:贵宾
威 望:10
帖 子:426
专家分:1650
注 册:2015-4-5
收藏
得分:3 
网上一大堆,百度。
其实可以看做两个数组的归并。这样问题就简单了

风回小院庭芜绿,柳眼春相续
2015-04-22 17:15
纳兰伽香
Rank: 10Rank: 10Rank: 10
来 自:北京
等 级:贵宾
威 望:10
帖 子:426
专家分:1650
注 册:2015-4-5
收藏
得分:0 
程序代码:
#include <stdio.h>
void Merge(int c[], int *nc,int a[],int na,int b[], int nb);
int main()
{
    int i,n,m;
    int nc = 0;
    scanf("%d%d",&n,&m);
    int a[n],b[m],c[n+m];
    for(i = 0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<m;i++)
    {
        scanf("%d",&b[i]);
    }
    Merge(c,&nc,a,n,b,m);
    
    for(i=0;i<m+n;i++)
    {
        printf("%d ",c[i]);
    }
    return 0;
}

void Merge(int c[], int *nc,int a[],int na,int b[], int nb)
{
    int cursora = 0;
     int cursorb = 0;
     int cursorc = 0;

     while((cursora<na)&&(cursorb<nb))
     {
     
        if (a[cursora]<= b[cursorb])
          {
            c[cursorc++]=a[cursora++];
          }
        else
          {
            c[cursorc++]=b[cursorb++];
          }
     }
    while(cursora<na)
     {
        c[cursorc++]=a[cursora++];
     }
    while(cursorb<nb)
     {
        c[cursorc++]=b[cursorb++];
     }
    *nc = cursorc;
}



风回小院庭芜绿,柳眼春相续
2015-04-22 17:16
ZaneZaneZane
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-4-22
收藏
得分:0 
回复 2楼 纳兰伽香
找不到
2015-04-22 21:48
fogmaple
Rank: 4
来 自:江西省赣州市于都县
等 级:业余侠客
威 望:1
帖 子:119
专家分:233
注 册:2014-7-28
收藏
得分:3 
还好吧
2015-04-23 08:27
彩彩
Rank: 2
等 级:论坛游民
帖 子:9
专家分:15
注 册:2015-4-20
收藏
得分:3 
#include <stdio.h>
#include <math.h>
#include<stdlib.h>
int main()
{ int array_num[10];
  int i,j,number,temp;
   printf("please input the order array:");
    for(i=0;i<9;i++)
     scanf("%d",&array_num[i]);
    printf("please input the insert number:");
    scanf("%d",&array_num[9]);

       for(i=0;i<9;i++)
       {  if(array_num[9]<array_num[i])
             {  temp=array_num[9];
                 for(j=9;j>i;j--)
                    array_num[j]=array_num[j-1];
                array_num[i]=temp;
                break;
             }
       }
       printf("the new order array is:\n");
       for(j=0;j<10;j++)
       {
        printf("%d\n",array_num[j]);
       }
     return 0;

}
2015-04-23 12:14
·charles
Rank: 2
等 级:论坛游民
帖 子:67
专家分:48
注 册:2015-3-23
收藏
得分:3 
#include "stdio.h"
int main()
{
    int a[10],i,j,num;
    for(i=0;i<9;i++)
        scanf("%d",&a[i]);
    scanf("%d",&num);
   
    for(i=0;i<9;i++)
        if(num<=a[i])
        {
            a[i]=num;
            break;
        }
        
    for(j=10;j>i;j--)
        a[j]=a[j-1];
        
    for(i=0;i<10;i++)
        printf("%d\n",a[i]);
        
    return 0;
}

编程!编程!!编程!!!
重要的事情说三遍!!!!
2015-04-25 01:08
请叫我IT楠
Rank: 2
来 自:未来星系
等 级:论坛游民
帖 子:12
专家分:23
注 册:2015-4-25
收藏
得分:3 
回复 3楼 纳兰伽香
这就没有必要卖弄调用函数这一高大上的技能吧。。。

小弟初来咋到
2015-04-25 17:53
纳兰伽香
Rank: 10Rank: 10Rank: 10
来 自:北京
等 级:贵宾
威 望:10
帖 子:426
专家分:1650
注 册:2015-4-5
收藏
得分:0 
回复 8楼 请叫我IT楠
什么 叫 卖弄?难道你每写一个函数 只是为了这个问题?如果是这样 你赢了  如果不是 其实你也赢了

风回小院庭芜绿,柳眼春相续
2015-04-27 08:57
渣渣渣
Rank: 2
等 级:论坛游民
帖 子:26
专家分:17
注 册:2015-3-23
收藏
得分:3 
我觉得最简单的就是从后向前判断,如果小于原数组数时,就把原数组数向后移,当不能满足是就把该数插到该位置即可!
2015-04-27 16:18
快速回复:在数组中插入一个数字(求大神)
数据加载中...
 
   



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

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