| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 493 人关注过本帖
标题:数组困惑
只看楼主 加入收藏
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
数组困惑
程序代码:
#include"stdio.h"
main()
{
    int i,j,n,a[5],b[5];
      printf("请输入插入的数及排好的序列");
      scanf("%d",&n);
   for(i=0;i<=4;i++)
   {
       scanf("%d",&a[i]);
       b[i]=a[i];
   }
   for(j=0;j<=4;j++)
       if(n<a[i])
           ;
       else {
              for(i=0;i<=4;i++)
                  a[i+2]=b[i+1];
                   a[i+1]=n;
       }
   for(i=0;i<=4;i++)
       printf("%d",a[i]);
}
真的是款一窍不通了敬请各位帮帮忙 此为将一个数插入已排好的数组中
搜索更多相关主题的帖子: color 
2011-04-27 19:45
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:4 
一个排好的序列已经把数组撑满了,你还想把数插哪去?

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-04-27 19:59
boxinchao
Rank: 4
等 级:业余侠客
帖 子:51
专家分:231
注 册:2011-4-13
收藏
得分:5 
能解释下这段代码想实现什么功能吗?for循环是怎么工作的你还没弄清楚
1.for循环没带大括号
2.这个循环共循环5次,i,j的值怎么变化,每个周期都是几,好好想一想吧
   for(j=0;j<=4;j++)
       if(n<a[i])
           ;
       else {
              for(i=0;i<=4;i++)
                  a[i+2]=b[i+1];
                   a[i+1]=n;
       }
2011-04-27 20:06
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
最近学的有点燥 麻烦具体指教下  功能就是在一个已排好序的数组中按顺序插入一个数   先谢过了
2011-04-27 21:02
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:2 
for(i=0;i<=4;i++)
                  a[i+2]=b[i+1];
已经撑死了。
2011-04-28 07:34
因为曾今年少
Rank: 2
等 级:论坛游民
帖 子:131
专家分:62
注 册:2011-4-13
收藏
得分:1 
这个问题我也遇到过
2011-04-28 07:56
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:8 
程序代码:
root@~ #cat insert.c
#include <stdio.h>

int main (void) {
//假定数组a为已排序的数组,元素个数5
        int a[5]={ 2,4,7,8,10 };
        int n,i,j;
//打印源数组
        for(i=0;i<5;i++) { printf ("%i ",a[i]); };printf ("\n");
//输入插入值
        printf ("Enter a number put into array:");
        scanf("%i",&n);
//遍历
        for(i=0;i<5;i++) {
//如果插入的值在两个元素之间
                if(n>a[i]&&n<a[i+1]) {
                        for(j=4;j>=i+1;j--) {
                                a[j+1]=a[j];
                        }
                        a[i+1]=n;
                        break;
                }
//如果插入的值等于某一元素的值
                if(n==a[i]) {
                        for(j=4;j>=i+1;j--) {
                                a[j+1]=a[j];
                        }
                        a[i+1]=n;
                        break;
                }
//如果插入的值小于0号元素
                if(n<a[0]) {
                        for(j=4;j>=0;j--) {
                                a[j+1]=a[j];
                        }
                        a[0]=n;
                        break;
                }
//如果插入的值大于4号元素
                if(n>a[4]) {
                        a[5]=n;
                        break;
                }
        }

// 显示插入后的数组各个元素

        for(i=0;i<6;i++) { printf ("%i ",a[i]); };printf ("\n");

        return 0;

}
//测试:
root@~ #
root@~ #./insert
2 4 7 8 10
Enter a number put into array:0
0 2 4 7 8 10
root@~ #./insert
2 4 7 8 10
Enter a number put into array:3
2 3 4 7 8 10
root@~ #./insert
2 4 7 8 10
Enter a number put into array:4
2 4 4 7 8 10
root@~ #./insert
2 4 7 8 10
Enter a number put into array:10
2 4 7 8 10 10
root@~ #./insert
2 4 7 8 10
Enter a number put into array:999
2 4 7 8 10 999
root@~ #

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-28 11:04
解元侠客
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-4-25
收藏
得分:0 
回复 7楼 ansic
你好,想请教一下~~~程序中  int a[5]={ 2,4,7,8,10 }; 不是已经将数组a的空间都占满了吗,a[0]=2,a[1]=4,a[2]=7,a[3]=8,a[4]=10,按理说a[5]是不存在(或不能存放数据)的呀,数组a在内存中只开辟了a[0]—a[7]的存储单元,为什么程序中还可以这样呢 if(n>a[4]) {a[5]=n; break;} ?
2011-04-28 13:16
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
回复 8楼 解元侠客
a[5]以后的数是未经初始化的垃圾数,需要的话,当然可以拿来使用。在C99以及gcc上编译没问题,别的就不大清楚啦。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-28 16:14
快速回复:数组困惑
数据加载中...
 
   



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

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