| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1241 人关注过本帖, 1 人收藏
标题:数组入门的一个好程序
只看楼主 加入收藏
壮志在我胸
Rank: 3Rank: 3
来 自:邯郸
等 级:论坛游侠
威 望:1
帖 子:158
专家分:125
注 册:2009-9-7
结帖率:75%
收藏(1)
 问题点数:0 回复次数:19 
数组入门的一个好程序
#include"stdio.h"
void main()
{
    int data[60],i,x;
    for(i=0;i<10;i++)
        scanf(" %d",&data[i]);
    for(i=0;i<10;i++)
        printf(" %d",data[i]);
    for(i=9;i<=5;i--)
        data[i+1]=data[i];
    data[5]=x;
    printf("请输入一个整数:");
    scanf("%d",&data[5]);
    for(i=0;i<=10;i++)
        printf(" %d",data[i]);
这个程序可以完成向数组中插入一个数据的事件,但是数组中最后一个数据怎么显示为乱码呢?
搜索更多相关主题的帖子: 入门 
2009-09-24 22:34
f2378
Rank: 1
等 级:新手上路
帖 子:7
专家分:7
注 册:2009-9-15
收藏
得分:0 
话说你没有初始化x,x的值很不确定啊
2009-09-24 22:41
壮志在我胸
Rank: 3Rank: 3
来 自:邯郸
等 级:论坛游侠
威 望:1
帖 子:158
专家分:125
注 册:2009-9-7
收藏
得分:0 
我试了,好像不是这里的事。
2009-09-25 08:16
forclwy
Rank: 4
等 级:业余侠客
帖 子:167
专家分:255
注 册:2008-10-21
收藏
得分:0 
for(i=9;i<=5;i--) 是这里的问题吧
把i<=5改为 i>=5 试下呢

2009-09-25 10:02
qlc00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:157
专家分:540
注 册:2007-11-26
收藏
得分:0 
数组越界了,所以最后显示一个乱码。因为以前已经有10个元素,现在有增加一个。

Anything is possible!
2009-09-25 12:07
壮志在我胸
Rank: 3Rank: 3
来 自:邯郸
等 级:论坛游侠
威 望:1
帖 子:158
专家分:125
注 册:2009-9-7
收藏
得分:0 
回复 4楼 forclwy
不是吧,这里应该没错
2009-09-25 20:14
壮志在我胸
Rank: 3Rank: 3
来 自:邯郸
等 级:论坛游侠
威 望:1
帖 子:158
专家分:125
注 册:2009-9-7
收藏
得分:0 
数组越界?能给我详细解释一下吗?因为我也注意这个问题了,所以我定义数组的时候,把数组定义的很大啊(data[60])
2009-09-25 20:17
shl305
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:36
专家分:121
注 册:2009-3-13
收藏
得分:0 
以下是引用forclwy在2009-9-25 10:02:33的发言:

for(i=9;i<=5;i--) 是这里的问题吧
把i<=5改为 i>=5 试下呢
应该是这个问题
2009-09-25 22:01
编我的
Rank: 1
等 级:新手上路
帖 子:36
专家分:6
注 册:2009-8-1
收藏
得分:0 
2楼跟4楼说的都是本程序存在的问题。
要插入数据得知道要插入什么数据,就是要对x进行赋值。要将数据插入到某个位置(你的程序中是插入到数组的第6个位置i>=5),先把这个位置以及后面的数据都往后移,在插入该数据。
所以
#include <stdio.h>
void main()
{
    int data[60],i,x;
    for(i=0;i<10;i++)
        scanf(" %d",&data[i]);
    for(i=0;i<10;i++)
        printf(" %d",data[i]);
    for(i=9;i>=5;i--)
        data[i+1]=data[i];
    printf("请输入一个整数:");
    scanf("%d",&x);
    data[5]=x;
    for(i=0;i<=10;i++)
        printf(" %d",data[i]);
}
2009-09-26 00:18
yxb0001
Rank: 2
等 级:论坛游民
帖 子:50
专家分:35
注 册:2009-9-9
收藏
得分:0 
#include"stdio.h"
void main()
{
    int data[60],i,x;
    for(i=0;i<10;i++)
        scanf(" %d",&data[i]);
    for(i=0;i<10;i++)
        printf(" %d",data[i]);
    for(i=9;i<=5;i--)
        data[i+1]=data[i];
    data[5]=x;
    printf("请输入一个整数:");
    scanf("%d",&data[5]);
    for(i=0;i<=10;i++)
        printf(" %d",data[i]);
}
只定义10元素,而后面有11个元素。红色处改为下面即可


for(i=0;i<=10;i++)
2009-09-26 02:24
快速回复:数组入门的一个好程序
数据加载中...
 
   



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

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