标题:菜鸟求助:数组的问题,哪位大哥来帮个忙
只看楼主
zhaojianhai
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-11-25
 问题点数:0 回复次数:11 
菜鸟求助:数组的问题,哪位大哥来帮个忙
#include <stdio.h>
void main()
{
int a[3][3][3];
for(int b=0;b<3;++b)
{
for(int c=0;c<3;++c)
{
for(int d=0;d<3;++d)
{
scanf("%d",&a[b][c][d]);
}
}
}
for(int b=0;b<3;++b)
{
for(int c=0;c<3;++c)
{
for(int d=0;d<3;++d)
{
printf("%d\t",&a[b][c][d]);
}
}
}
}
输出结果是:1244788 好多个为什么啊?
我刚学到数组没学指针这是什么情况呢?
帮帮菜鸟吧!!!!

[此贴子已经被作者于2007-1-6 23:04:15编辑过]

搜索更多相关主题的帖子: 大哥 void include 
2007-01-06 23:03
xu2000
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:51
帖 子:3890
专家分:56
注 册:2006-4-8
得分:0 

for语句中声明变量,行得通吗?


我会拿出我全部的钱财,以保你衣食无忧。我会献出我所有的智慧,以助你一帆风顺。我会想到所有的笑语,以令你展眉开颜。我会挤出最长的时间,以使你终生幸福。        [本人原创的结婚宣言]
2007-01-06 23:20
hjingya
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-12-6
得分:0 
你是如何能让int在for语句中行通的呢,我觉得你应该在for语句前就应该对所用变量a,b,c进行定义。
还有一点我不明白,就是数组a后面给出了三个容量是什么意思,不一个[3]就行了吗,不就是规定它有几个元素吗,为什么规定三次呢,还是我错了,你这个程序我也不懂,还是请高手指点一下吧!
我改过了,但运行结果跟你的1244788完全不同。
也期待高手给做一下修改和解释,
期待中。。。。。。

2007-01-06 23:41
w114725053
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-1-1
得分:0 
输出结果是:1244788 好多个为什么啊?
我刚学到数组没学指针这是什么情况呢?
帮帮菜鸟吧!!!![QUOTE][/QUOTE]
因为你这个是多维数组就是说你那有3个二维数组..而每个二维数组又有3个一维数组...一维数组又有3个元数~~那就应该有很多个咯...
我也是刚学到数组那..不知道对不对...你的局部变量b编译是没有错误吗???
2007-01-06 23:53
神秘失恋
Rank: 1
等 级:新手上路
帖 子:663
专家分:0
注 册:2007-1-6
得分:0 
printf("%d\t",&a[b][c][d]);

\t 你在这想表达什么意思?

&去掉

上帝之手.........
2007-01-06 23:57
SuperStar515
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2006-12-24
得分:0 

scanf("%d",&a[b][c][d]);

没有输入就有运行的结果啊?


喜欢等待,因为等待是一门需要花费一生才能读懂的艺术。等待。。。
2007-01-07 02:02
SuperStar515
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2006-12-24
得分:0 
#include <stdio.h>
void main()
{
int a[3][3][3]; /* 红色部分是从键盘输入27个数为a[3][3][3]赋值*/
for(int b=0;b<3;++b) /*赋值顺序是d,c,b*/
{
for(int c=0;c<3;++c)
{
for(int d=0;d<3;++d)
{
scanf("%d",&a[b][c][d]);
}
}
}
for(int b=0;b<3;++b) /*蓝色部分是输出a[3][3][3]的值*/
{ /*顺序也是d,c,b*/
for(int c=0;c<3;++c)
{
for(int d=0;d<3;++d)
{
printf("%d\t",&a[b][c][d]);
}
}
}
}
应该是这样的

[此贴子已经被作者于2007-1-7 2:13:20编辑过]


喜欢等待,因为等待是一门需要花费一生才能读懂的艺术。等待。。。
2007-01-07 02:12
caiqiufu
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-12-14
得分:0 
#include <stdio.h>
void main()
{
int a[3][3][3];
for(int b=0;b<3;++b)
{
for(int c=0;c<3;++c)
{
for(int d=0;d<3;++d)
{
scanf("%d",&a[b][c][d]);
}
}
}
for( b=0;b<3;++b)
{
for(int c=0;c<3;++c)
{
for(int d=0;d<3;++d)
{
printf("%d\t",a[b][c][d]);
}
}
}
}数组用的就是地址,所以不用printf("%d\t",&a[b][c][d]);

2007-01-07 11:56
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
得分:0 

我给你改了一下:
#include <stdio.h>
void main()
{
int a[3][3][3];
for(int b=0;b<3;++b)
{
for(int c=0;c<3;++c)
{
for(int d=0;d<3;++d)
{
scanf("%d",&a[b][c][d]);
}
}
}
for(b=0;b<3;++b)
{
for(c=0;c<3;++c)
{
for(d=0;d<3;++d)
{
printf("%d\t",a[b][c][d]);
}
}
}
}


~~我的明天我知道~~
2007-01-07 13:28
神秘失恋
Rank: 1
等 级:新手上路
帖 子:663
专家分:0
注 册:2007-1-6
得分:0 
以下是引用zhaojianhai在2007-1-6 23:03:27的发言:
#include <stdio.h>
void main()
{
int a[3][3][3];
for(int b=0;b<3;b++) //下同...
{
for(int c=0;c<3;c++) //如果是++b的话;只对1,2附值~
{
for(int d=0;d<3;d++)
{
scanf("%d",&a[b][c][d]);
}
}
}
for(int b=0;b<3;b++)
{
for(int c=0;c<3;c++)
{
for(int d=0;d<3;d++)
{
printf("%d\t",a[b][c][d]);
}
}
}
}
输出结果是:1244788 好多个为什么啊?
我刚学到数组没学指针这是什么情况呢?
帮帮菜鸟吧!!!!


上帝之手.........
2007-01-07 13:35



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




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

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