| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 395 人关注过本帖
标题:为何得不出答案,关于指针
只看楼主 加入收藏
陈宇水
Rank: 2
来 自:东莞
等 级:论坛游民
帖 子:29
专家分:34
注 册:2013-5-5
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
为何得不出答案,关于指针
#include<stdio.h>
main()
{
   
    float a[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};
    void average(float (*p)[4],int n);
   
    average(a,12);
    return 0;
}
void average(float (*p)[4],int n)
{
    float sum,aver;
    int i,j;
   
    for(sum=0,i=0;i<3;i++)
    for(j=0;j<3;j++)
    sum+=*(*(p+i)+j);/*本人认为是这一栏有问题,但不知出于那*/
    aver=sum/n;
printf("%f",aver);
}
正确答案是82.25,得不出答案。求指教。
搜索更多相关主题的帖子: return average void 
2013-05-10 20:38
Ryker
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:145
专家分:420
注 册:2013-2-19
收藏
得分:5 
因为 float (*p)[4] 没有初始化..数组a并没有被传给函数,还有那个 n ..

真奇怪,指针声明在函数原型中..这么特别的爱好 ...

函数头部定义变量不好吗?

[ 本帖最后由 Ryker 于 2013-5-10 20:51 编辑 ]
2013-05-10 20:48
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:5 
for(sum=0,i=0;i<3;i++)
    for(j=0;j<4;j++)
    sum+=*(*(p+i)+j);/*本人认为是这一栏有问题,但不知出于那*/
    aver=sum/n;
循环条件是4不是3,参数不需要初始化的

Maybe
2013-05-10 21:00
Ryker
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:145
专家分:420
注 册:2013-2-19
收藏
得分:0 
回复 3楼 邓士林
呃..我看错了..我把那句看成函数调用了...

没看下面还有一句...

我还是习惯函数原型在头文件下面写...写在函数里实在是...纠结啊
2013-05-10 22:26
jackliuwenli
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2013-3-28
收藏
得分:0 
   
    for(sum=0,i=0;i<3;i++)

    for(j=0;j<  4   ;j++)

    sum+=*(*(p+i)+j);     /*(*(p+i)+j)= *(p[i]+ j),3行4列,12个数据,你只加到了3行3列,9个数,所以,数值变小了*/
    aver=sum/n;
2013-05-10 23:51
快速回复:为何得不出答案,关于指针
数据加载中...
 
   



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

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