| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 599 人关注过本帖
标题:新手求助,数组问题
只看楼主 加入收藏
zzm83393336
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-6-16
结帖率:100%
收藏
 问题点数:0 回复次数:8 
新手求助,数组问题
#include <stdio.h>
void main()
{
    int a[10],b;
    for(b=0;b<=9;b++)
        a[b]=b;
    printf("%d",a[b]);
}
为什么显示结果为:1245120
搜索更多相关主题的帖子: void include 
2012-06-16 17:22
a646404908
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:189
专家分:492
注 册:2012-2-14
收藏
得分:0 
#include <stdio.h>
void main()
{
    int a[10],b;
    for(b=0;b<=9;b++)
        a[b]=b;
   for(b=0;b<9;b++)   
     printf("%d",a[b]);
}
2012-06-16 18:14
lg1076304851
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2012-6-6
收藏
得分:0 
数组输入输出都要用循环
2012-06-16 19:43
csxuedn
Rank: 2
等 级:论坛游民
帖 子:15
专家分:48
注 册:2012-6-15
收藏
得分:0 
楼主请看,数组中现在有10个数字0到9,数组对应的下表也是0到9
此时如果想输出刚才赋的值,只能是a[0]到a[9],但 printf("%d\n",a[b])语句中的b已经为10,数组下标越界了,输出内存中其他内容。

所以楼主并没有看到预料的内容,希望能帮到你……
2012-06-16 20:41
c狼
Rank: 1
来 自:江西
等 级:新手上路
帖 子:13
专家分:5
注 册:2012-6-10
收藏
得分:0 
以下是引用zzm83393336在2012-6-16 17:22:09的发言:

#include  
void main()
{
    int a[10],b;
    for(b=0;b<=9;b++)
        a=b;
    printf("%d",a);
}
为什么显示结果为:1245120
#include <stdio.h>
void main()
{
    int a[10],b;
    for(b=0;b<=9;b++)
     {    a[b]=b;
    printf("%d",a[b]);}
}
这样就行了
2012-06-16 20:45
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:0 
把输出语句放循环里面就对了:
#include <stdio.h>
int main(void)
{
    int a[10],b;
    for(b=0;b<=9;b++){
        a[b]=b;
        printf("%d",a[b]);
    }
    putchar(10);      
    return 0;
}
当你把输出语句放外面时,b为10,而a[10]超出数组范围,系统不知道它是多少。会输出别的不知道的东西

Edsger Dijkstra:算法+数据结构=程序
2012-06-17 09:11
jokerskill
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:392
专家分:554
注 册:2012-3-4
收藏
得分:0 
#include <stdio.h>
int main(void)
{
int a[10],b;
for ( b = 0; b <= 10; b = b + 1 )
a[b] = b;
for ( b = 0; b <= 10; b += 1 )
printf("%d",a[b]);
return 0;
}
2012-06-17 18:19
张朝成
Rank: 4
等 级:业余侠客
帖 子:149
专家分:265
注 册:2012-3-22
收藏
得分:0 
#include <stdio.h>
 void main()
 {
     int a[10],b;
     for(b=0;b<=9;b++)
         a[b]=b;
     printf("%d",a[b]);
 }
 为什么显示结果为:1245120
这是因为a[b]并没有像你想象的一样从0变化到9,因为你的for循环语句不包含printf这句。所以printf里面的a[b]并没有具体的指,但没有语法错误,所以程序可以运行,但是输出的1245120只是一个垃圾数字,没有具体的意义,真确的程序如下,加个{}就好了。
#include <stdio.h>
 void main()
 {
     int a[10],b;
     for(b=0;b<=9;b++)

         a[b]=b;
     printf("%d",a[b]);

 }
显示结果为:0123456789
2012-07-04 13:44
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 7楼 jokerskill
b <= 10;  

总有那身价贱的人给作业贴回复完整的代码
2012-07-04 13:49
快速回复:新手求助,数组问题
数据加载中...
 
   



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

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