标题:求助 在一个有序数组中插入一个数,使数组仍然有序。
只看楼主
丨丨
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2018-10-15
结帖率:90.48%
已结贴  问题点数:20 回复次数:10 
求助 在一个有序数组中插入一个数,使数组仍然有序。

怎么写

[此贴子已经被作者于2018-11-11 11:17编辑过]

搜索更多相关主题的帖子: 有序 序数 数组 插入 一个数 
2018-11-11 10:41
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
得分:5 
自己的代码,自己的思路,打出来!  在论坛,避免这种直接给题,要答案的

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-11 10:45
丨丨
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2018-10-15
得分:0 
回复 2楼 Tomorrw_I
说实话,没有思路,老师上课讲了,用的不是定义一个函数,而是用比较的方法,听的一脸懵逼。
2018-11-11 10:50
丨丨
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2018-10-15
得分:0 
回复 2楼 Tomorrw_I
#include<stdio.h>
int main()
{
    int n,i,a[10000],j,t,c;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
    scanf("%d",&a[i]);
    }
    scanf("%d",&c);
    c=a[n];
    for(i=0;i<n-1;i++)
    for(j=0;j<n-i;j++)
        if(a[j]>a[j+1])
    {
        t=a[j];
        a[j]=a[j+1];
        a[j+1]=t;
     }
    for(i=0;i<n+1;i++)
    printf("%d ",a[i]);
   
return 0;   
   
}


为什么会这样
2018-11-11 12:09
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:395
专家分:2640
注 册:2018-3-30
得分:10 
用需要插入的数与第一个数依次往后比较,只要是遇到了不大于比较的数,就记录下那个数的位置

从数组末尾往前依次将数字后移一位,到记录的位置为止

移动完成后让那个位置的值等于需要插入的值

saber,别哭.
2018-11-11 12:29
丨丨
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2018-10-15
得分:0 
回复 5楼 幻紫灵心
能帮我看一下我那个程序的问题吗
2018-11-11 12:40
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:395
专家分:2640
注 册:2018-3-30
得分:0 
a[n]=c;//你写成了c=a[n];

saber,别哭.
2018-11-11 13:09
MeandC
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:8
帖 子:245
专家分:792
注 册:2018-7-14
得分:5 
有个思路你可以参考一下,通过比较找出要插入的数的位置,把插入位置及后面的元素都往后移一位,再把数插进去。

C果然是有点难啊!
2018-11-11 13:26
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:395
专家分:2640
注 册:2018-3-30
得分:0 
for(i=0;i<n;i++)//不是i<n-1

你这样只是把输入的数放后面和原来的数排序一遍,题目给定了原数组是有序的,你再排序一遍只是浪费资源,直接找到位置,腾出位置,插入就好

saber,别哭.
2018-11-11 13:29
丨丨
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2018-10-15
得分:0 
回复 9楼 幻紫灵心
我改成a[n]=c后,把i<n和i<n-1都试了,发现结果都一样,为什么
2018-11-11 19:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-491160-1-1.html




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

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