标题:数组名作函数参数
只看楼主
神之驱逐
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:136
专家分:436
注 册:2011-11-22
结帖率:87.5%
已结贴  问题点数:20 回复次数:8 
数组名作函数参数
#include<stdio.h>
int main()
{
    float average(float array[10]);                 //函数声明
    float score[10],aver;
    int i;
    printf("input 10 score:\n");
    for(i=0;i<10;i++)
    {
        scanf("%f",&score[i]);
    }
    printf("\n");
    aver=average(score);                        //调用average函数
    printf("average score is %5.2f\n",aver);
    return 0;
}



float average(float array[10]);                     //定义average函数
{int i;
 float aver,sum=array[0];
 for(i=1;i<10;i++)
        sum=sum+array[i];                               //累加学生成绩
 aver=sum/10;
 return(aver);
}
 
各位,这个程序有没有问题,我是照着书上打的,我对着书,对了两次,没发现问题。
可是,我在VC2008上运行,提示有两个错误。
c:\users\administrator\documents\visual studio 2008\projects\array name\array name\array name.cpp(10) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        d:\软件\vc2008\vc\include\stdio.h(306) : 参见“scanf”的声明
1>c:\users\administrator\documents\visual studio 2008\projects\array name\array name\array name.cpp(21) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>生成日志保存在“file://c:\Users\Administrator\Documents\Visual Studio 2008\Projects\array name\array name\Debug\BuildLog.htm”
1>array name - 1 个错误,1 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

这个是用数组名作为函数参数的,应该在主调函数和被调用函数分别定义数组,例中array 形参数组名,score是实参数组名,
分别在其所在函数中定义,不能只在一方定义。
分别在其所在函数中定义,这句我明白,score 是在主函数中定义,array是在average函数中定义。
不能只在一方定义。这句是什么意思,这一方是哪一方?


搜索更多相关主题的帖子: include average return 
2012-07-14 19:03
lanleixu1989
Rank: 1
等 级:新手上路
帖 子:2
专家分:5
注 册:2012-7-9
得分:5 
下面定义average函数那行是不加分号的
2012-07-14 19:15
罗庇鹏ksq
Rank: 5Rank: 5
来 自:太平洋
等 级:职业侠客
帖 子:220
专家分:310
注 册:2012-6-30
得分:5 
你在
float average(float array[10]);                     //定义average函数
这一行打个分号干嘛啊,以后小心点,给个分吧


从来都是无所谓,现在也该学着有所谓。✿咱们一个人,别坐井观天❀
2012-07-14 19:17
神之驱逐
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:136
专家分:436
注 册:2011-11-22
得分:0 
还有一个问题:不能只在一方定义。这句是什么意思,这一方是哪一方?


你在努力,你就在进步!
2012-07-14 19:28
lanleixu1989
Rank: 1
等 级:新手上路
帖 子:2
专家分:5
注 册:2012-7-9
得分:0 
你加了分号,意思就是你下面的函数没定义好,只定义了score这一方,没把array这一方定义好
2012-07-14 19:36
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
得分:5 
回复 4楼 神之驱逐
一方??不够书面化.....依你的程序来说,你在主函数里面申明了average函数,并且在主函数里面调用它.....那么你应该将它实现....即调用和实现要同步
2012-07-14 20:11
jtx0329
该用户已被删除
得分:5 
回复 4楼 神之驱逐
提示: 作者被禁止或删除 内容自动屏蔽
2012-07-16 17:28
神之驱逐
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:136
专家分:436
注 册:2011-11-22
得分:0 
是啊,我看的是谭浩强编的,

你在努力,你就在进步!
2012-07-17 13:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
老谭书上的代码都是这个样子的吗?
1楼的代码,就算你把后面函数定义中的分号去掉,编译也会有新的信息给你看,怎么老谭写出这样的代码?描红的文字也是他说的?

[ 本帖最后由 TonyDeng 于 2012-7-18 02:03 编辑 ]

授人以渔,不授人以鱼。
2012-07-18 01:59



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




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

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