| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1624 人关注过本帖
标题:第五个问题,数组指针问题;10分;
只看楼主 加入收藏
帅的让人抽
Rank: 4
来 自:安徽
等 级:业余侠客
帖 子:94
专家分:224
注 册:2010-9-30
收藏
得分:0 
你自定义sum函数时,形式参数定义的是float形式的一维数组,而你调用此函数时,实参是二维数组b的行地址,这怎么行了?你的这个程序可以不用这样写二维数组的地址是个难点啊……

樱花下落的速度依然是秒速五厘米,即使发了一千次短信,
心与心之间也只能靠近一厘米……
2010-12-16 17:49
半片叶zick
Rank: 2
等 级:论坛游民
帖 子:53
专家分:44
注 册:2010-11-30
收藏
得分:0 
回复 21楼 帅的让人抽
二维数组确实比较难,特别是指针和二维数组,容易混。我正在学习,想把他们搞的特别清楚;伙计你C什么程度了?
2010-12-18 10:16
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
我看了一下你的代码,首先说明一下为什么结果什么都没有,因为调用sum函数的时候return 返回的S是属于sum函数的里的,它随着函数的调用而声明随着调用函数的结束而释放,所以return的时候函数已经结束s已经释放掉了,所以Return 是没有返回值的。我给你写了一个就是把循环输出给你拿到调用函数里面问题就解决了。
程序代码:
#include<stdio.h>
#include<math.h>
main()
{
    float a[3],b[3][3];
    int i,j;
    void sum(float c[][3]);/* 声明函数sum */
    printf("请输入3*3数组:\n");/* 输入3*3数组 */
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            scanf("%f",&b[i][j]);
        printf("\n");
        for(i=0;i<3;i++)/* 循环 */
            sum(b);/* 调用sum,并将sum函数返回值赋值给a[i] */
       
}
void sum(float c[][3])/* 自定义的sum函数 */
{
    float s=0;
    int j;
    static int i;
    for(j=0;j<3;j++)
        s+=c[i][j];
    i++;
       printf("第%d行的和为:%f\n",i,s);//循环输出;
      
}
附带运行结果,我是在vc++6.0环境下编译的。
图片附件: 游客没有浏览图片的权限,请 登录注册

Go Go Go
2010-12-18 13:36
roomoor
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-12-18
收藏
得分:0 


读取float类型变量为scanf("%f", &f);
读取double类型变量为scanf("%lf", &dbl);
输出float和double类型变量都为scanf("%f %f", f, dbl);


[ 本帖最后由 roomoor 于 2010-12-18 20:03 编辑 ]
2010-12-18 20:02
快速回复:第五个问题,数组指针问题;10分;
数据加载中...
 
   



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

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