题解 | #有序序列插入一个数#

有序序列插入一个数

http://www.nowcoder.com/practice/74486aec6fe14d44b509efabf265ee66

#include<stdio.h>
int main(void)
{
    int n,newNum;
    int num[50];
    scanf("%d",&n);
    for(int i=0;i<n;i++)//输入n个数到数组中
    {
        scanf("%d",&num[i]);
    }
    scanf("%d",&newNum);
    int l=n-1;//定义一个l下标,指向数组的最后一个元素
    while(l>=0&&num[l]>newNum)//如果l不越界并且比指向l的数组元素比要插入的数大,则自减,直到比要插入的数组元素小
        l--;
    l=l+1;//因为此时l指向数组元素比要插入的数小的数,所以将其加1指向要插入的位置
    for(int j=n;j>l;j--)//将数组元素逐个往后挪
        num[j]=num[j-1];
    num[l]=newNum;//将要插入的数插入相应的位置
    for(int i=0;i<=n;i++)//因为已经插入了一个数,所以数组扩大了一个元素
        printf("%d ",num[i]);
    return 0;
}
全部评论

相关推荐

07-15 14:14
门头沟学院 Java
7.10投递7.15感谢信
投递地平线等公司7个岗位
点赞 评论 收藏
分享
06-15 20:57
已编辑
门头沟学院 Java
CARLJOSEPH...:年轻人有傲气很正常,但是建议工作前洗净傲气。 说实在的,什么奖学金什么奖项的都很一般。尊重你的老师,在有时间的时候去上课,真遇到走不开的事,请态度端正地向你的老师说明情况,请求请假。我相信任何一个有师德的老师都会允许的(我的老师就是这样)。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务