| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1214 人关注过本帖
标题:请各位帮忙看看这程序为什么错了
只看楼主 加入收藏
jiogao01
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-12-16
收藏
 问题点数:0 回复次数:13 
请各位帮忙看看这程序为什么错了
main()
{
void g();
float s[3][3]={{1,2,3},{4,5,6},{7,8,9}};
g(s);
}
void g(float s[][])
{
int i,j;
for(i=0;i<10;i++)
 for(j=0;j<10;j++)
 {
 printf("%f",s[i][j]);  /*就是这行 运行的时候提示Size of structure or arraynot known in function f*/
 printf("\n");
 }
}

刚开始学 很菜 请大家教教我。

[[italic] 本帖最后由 jiogao01 于 2007-12-16 15:20 编辑 [/italic]]
搜索更多相关主题的帖子: float void int 
2007-12-16 15:09
jiogao01
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-12-16
收藏
得分:0 
原来还有一个输入的自定义函数 也是用这样的循环 我把它改成只有输出的这样短一点 一样的错误 帮忙看看 谢谢啦 我一直在等这等着

[[italic] 本帖最后由 jiogao01 于 2007-12-16 15:23 编辑 [/italic]]
2007-12-16 15:18
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
你的下标以越界.
/*正确结果*/
main()
{
void g();
float s[3][3]={{1,2,3},{4,5,6},{7,8,9}};
g(s);
}
void g(float s[][3])
{
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
printf("%f",s[i][j]);  /*就是这行 运行的时候提示Size of structure or arraynot known in function f*/
printf("\n");
}
}
2007-12-16 15:29
jiogao01
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-12-16
收藏
得分:0 
不行啊 电脑还是那样提示
那个10是不小心打错的
我在机房编的 老师说是C程序的错误还是什么反正没听懂
回来重新编了一遍还是那样 就上来问大家了 再帮我看看。。
2007-12-16 15:45
jiogao01
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-12-16
收藏
得分:0 
谢谢 我没注意看你改的 不好意思
改成
void g(float s[][3])
后就能运行了 谢谢拉
以后一定注意
2007-12-16 15:57
cyx101782
Rank: 2
等 级:论坛游民
帖 子:12
专家分:15
注 册:2007-7-14
收藏
得分:0 
已经解决了!

[[italic] 本帖最后由 cyx101782 于 2007-12-16 16:05 编辑 [/italic]]
2007-12-16 16:02
jiogao01
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-12-16
收藏
得分:0 
main()
{
void f();
void g();
float s[3][3];
f(s);
g(s);
}
void f(float s[][3])
{
int i,j;
for(i=0;i<3;i++)
 for(i=0;i<3;i++)
 scanf("%f",&s[i][j]);
}
void g(float s[][3])
{
int i,j;
for(i=0;i<3;i++)
 {
 for(j=0;j<3;j++)
 printf("%f   ",s[i][j]);
 printf("\n");
 }
}
再看一下这个啊 就是加了个输入的程序怎么就不行呢
运行的时候直接闪一下就过去了 结果显示是
scanf:floating point formats not linked
在机房老师试过在输入的%f前面加个空格 加了之后能输入数字了 可是输出的时候还是这样 最后也没解决
麻烦大家了啊
2007-12-16 16:23
布拉莫斯
Rank: 1
来 自:中国太平洋舰队
等 级:新手上路
帖 子:169
专家分:0
注 册:2007-3-31
收藏
得分:0 
我发现楼群上的程序有两个比较明显的错误
1。对函数的声明;
void f();
void g();
2.那两个循环语句
  for(i=0;i<3;i++)
   for(i=0;i<3;i++)   /*  这昊还是  i   ? */
   scanf("%f",&s[i][j]);

真理往往掌握在少数人手中,可现实却是少数服从多数!
2007-12-16 19:43
jxj777
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-10-27
收藏
得分:0 
参数传递的问题
也可改为数组指针做形参
void g(float (*s)[3])

一个人的力量是缈小的....... 互帮互助才是出路
2007-12-16 21:32
jiogao01
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-12-16
收藏
得分:0 
对函数的声明那里怎么改才对呢
那个是  j  
这个错误不是重点嘛 呵呵
要发上来的时候改改弄错的
按楼上的改了 还是那样啊
是把  void g(float s[][3])  改成  void g(float (*s)[3])  
main()
{
int i,j;
float s[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%f",&s[i][j]);
}
我简化了一下 只是这样就有那个问题了

[[italic] 本帖最后由 jiogao01 于 2007-12-16 23:13 编辑 [/italic]]
2007-12-16 22:30
快速回复:请各位帮忙看看这程序为什么错了
数据加载中...
 
   



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

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