| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 829 人关注过本帖
标题:这个错在哪里,为什么?
只看楼主 加入收藏
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
结帖率:100%
收藏
 问题点数:0 回复次数:7 
这个错在哪里,为什么?
程序代码:
#include<stdio.h>
void average(float *p, int n)
{
    float *p_end;
    float sum = 0, aver;
    p_end = p + n - 1;
    for (; p <= p_end; p++)
        sum = sum + (*p);
    aver = sum / n;
    printf("%5.2f\n", aver);
}

void search(float(*p)[4], int n)
{
    int i;
    for (i = 0; i < 4; i++)
        printf("%5.2f ", *(*(p + n) + i));
    printf("\n");
}

int main()
{
    void average(float *p, int n);
    void search(float(*p)[4], int n);
    float score[3][4] = { {65,67,70,60},{80,87,90,81},{90,99,100,98} };
    average(score, 12);
    search(score, 2);
    return 0;
}
2017-01-12 20:26
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
为什么错了~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-12 20:35
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
score是一个二维数组。
要传递二维数组的话,你的average函数的形参写错了。
void average(float (*p)[4], int a,);

调用的话,写成average(score,3)

average函数的定义部分也得重写。



[此贴子已经被作者于2017-1-12 21:16编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-01-12 20:38
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
如果你的average是求数组的平均值的话,代码如下。

#include<stdio.h>
void average(float (*p)[4], int n)
{
    float sum = 0;
    int a,b;

    for(a = 0; a < n; a++)
        for(b = 0; b < 4; b++)
            sum += *(*(p+a)+b); //这里写成  sum += p[a][b] 会好些,但是我看你的search函数中写的是*(*(p+n)+i),所以就写成了这样。
        
    printf("%5.2f\n", sum/12);
}

void search(float(*p)[4], int n)
{
    int i;
    for (i = 0; i < 4; i++)
        printf("%5.2f ", *(*(p + n) + i));
    printf("\n");
}

int main()
{
    void average(float (*p)[4], int n);
    void search(float(*p)[4], int n);
    float score[3][4] = { {65,67,70,60},{80,87,90,81},{90,99,100,98} };
    average(score, 3);
    search(score, 2);
    return 0;
}

[此贴子已经被作者于2017-1-12 21:20编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-01-12 21:07
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
收藏
得分:0 
average(score[0], 12);
search()函数的具体作用是什么?

Code is my life.
2017-01-12 21:13
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 5楼 bjut_Allen
试了试,原来还真可以这样写。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-01-12 21:17
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
回复 5楼 bjut_Allen
查找那个学生的四门课成绩,谢谢了
2017-01-12 21:52
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
回复 6楼 renkejun1942
谢谢了
2017-01-12 21:53
快速回复:这个错在哪里,为什么?
数据加载中...
 
   



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

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