| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 609 人关注过本帖
标题:刚才看到一个数组插入的代码,有句话不明白
只看楼主 加入收藏
bojy123
Rank: 1
等 级:新手上路
帖 子:30
专家分:4
注 册:2013-4-6
结帖率:100%
收藏
已结贴  问题点数:1 回复次数:6 
刚才看到一个数组插入的代码,有句话不明白
include<stdio.h>
int insert(int b,int *a)
{
    int i,j;
    for(i=0;i<5;i++)
    if(b<a[i]){
       for(j=4;j>=i;j++)  这两句是什么意思,从后开始后移一位么?
        a[j+1]=a[j];
        break;
    }
    a[i]=b;
    for(i-0;i<=5;i++)
    printf("%d\n",a[i]);
}
int main()
{
    int a[5],b,i;
    for(i=0;i<5;i++)
    scanf("%d",&a[i]);
    scanf("%d",&b);
    insert(b,a);
}
搜索更多相关主题的帖子: insert 
2013-04-25 23:15
Explorerlxz
Rank: 9Rank: 9Rank: 9
来 自:zzu
等 级:蜘蛛侠
威 望:4
帖 子:302
专家分:1032
注 册:2013-4-24
收藏
得分:0 
#include<stdio.h>//a[i]是一从小到大排列的数组,插入b时,数组变大并且把b插在第一个大于b的数前面,后面依次往后移一项
int insert(int b,int *a)
{
    int i,j;
    for(i=0;i<5;i++)
    if(b<a[i])
    {
       for(j=4;j>=i;j--)//从a[i]开始,每项向后移一位
        a[j+1]=a[j];
        break;
    }
    a[i]=b;
    for(i=0;i<=5;i++)
    printf("%d\n",a[i]);
}
int main()
{
    int a[5],b,i;
    for(i=0;i<5;i++)
    scanf("%d",&a[i]);
    scanf("%d",&b);
    insert(b,a);
    return 0;
}
2013-04-25 23:42
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
收藏
得分:0 
插入的话,找到你要插入的那个点后总不能把他覆盖了吧,这就不叫插入了,所以插入点及其后的所有元素都要顺序后移移位
2013-04-26 10:30
不眠的夜
Rank: 2
等 级:论坛游民
帖 子:63
专家分:96
注 册:2013-3-12
收藏
得分:0 
你定义的事a【5】也即是从0~~4;你这么写出现了a【5】是错误的。已经超出数组的范围
2013-04-26 10:50
Explorerlxz
Rank: 9Rank: 9Rank: 9
来 自:zzu
等 级:蜘蛛侠
威 望:4
帖 子:302
专家分:1032
注 册:2013-4-24
收藏
得分:0 
嗯,应该定义成a[6]。
2013-04-26 13:41
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:1 
if(b<a[i])
    {
       for(j=4;j>=i;j--)//从a[i]开始,每项向后移一位
        a[j+1]=a[j];
        break;
    }
如果b比后面的数小,那么后面的数往后移动,目的是腾出一个空间为后面存储b

Maybe
2013-04-26 16:58
bojy123
Rank: 1
等 级:新手上路
帖 子:30
专家分:4
注 册:2013-4-6
收藏
得分:0 
以下是引用邓士林在2013-4-26 16:58:25的发言:

if(b<a)
    {
       for(j=4;j>=i;j--)//从a开始,每项向后移一位
        a[j+1]=a[j];
        break;
    }
如果b比后面的数小,那么后面的数往后移动,目的是腾出一个空间为后面存储b

原来如此 看懂了
2013-04-30 10:14
快速回复:刚才看到一个数组插入的代码,有句话不明白
数据加载中...
 
   



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

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