标题:数组名作为函数参数的问题
只看楼主
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
结帖率:96.77%
 问题点数:0 回复次数:11 
数组名作为函数参数的问题
#include<stdio.h>
void Sscores(int scores[10]);
float AVscores(int iscores[10]);
void main()
{
    int scores[10];
    float average;
    Sscores(scores[10]);
    average=AVscores(scores[10]);
    printf("平均成绩是:%d\n",average);

}
void Sscores(int scores[10])
{
    int i;
   
    for(i=0;i<10;i++)
    {
        scanf("%d",&scores[i]);
    }
}
float AVscores(int iscores[10])
{
    float sum=0;
    int i;
    for(i=0;i<10;i++)
    {
        sum=sum+iscores[i];
    }
    return sum;

}
提示的错误是:
1.E:\迅雷下载\我的c语言\数组名作为函数参数.cpp(8) : error C2664: 'Sscores' : cannot convert parameter 1 from 'int' to 'int []'
2.Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
就这两个错误,不知道咋该啊,是不是数据类型有问题呢?还有就是在数组名作为参数时要注意哪些问题啊,求高手指教啊!!!
搜索更多相关主题的帖子: return include average void 
2012-10-01 22:30
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
得分:0 
#include<stdio.h>
void Sscores(int scores[10]);
float AVscores(int iscores[10]);
void main()
{
    int scores[10];
    float average;
    Sscores(scores[10]);    --------------------->Sscores(scores); 改成
    average=AVscores(scores[10]);   ------------------》average=AVscores(scores);
    printf("平均成绩是:%d\n",average); ---------------》%d  改成 %f  数制转换是由短的向长的转的 不能长的转成短的,具体请看数制的转换


}
void Sscores(int scores[10])   ;------------> scores[10] 里面的 10 可以不写
{
    int i;
   
    for(i=0;i<10;i++)
    {
        scanf("%d",&scores[i]
    }
}
float AVscores(int iscores[10])
{
    float sum=0;
    int i;
    for(i=0;i<10;i++)
    {
        sum=sum+iscores[i];
    }
    return sum;

}
你调用函数 给出的实参不是数组  而是数组元素 scores[10]  而你这个数组的引用还超界限了 数组下标最大为 9
   
相关内容请参考  函数参数传送 部分内容
数组的参数传递是 传送的 数组的首地址值给函数使用的

问题解决了,那么就请赶紧的结贴吧 ,我穷的都发不起求问贴了




[ 本帖最后由 zhu224039 于 2012-10-2 02:01 编辑 ]

我要成为嘿嘿的黑客,替天行道
2012-10-02 01:39
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
得分:0 
哈哈,高手啊,谢谢啦,但是void Sscores(int scores[10])   ;------------> scores[10] 里面的 10 是必须要写的吧。我自己试了,去掉就编译错误了。

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-10-02 09:59
pcbaichi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:486
专家分:1185
注 册:2010-11-13
得分:0 
回复 3楼 一个孩子
可以不写,你上面的函数申明里也要改

免费赠送河蟹一只
2012-10-02 10:05
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
得分:0 
赶紧结贴,穷的连发文贴都发不起了

我要成为嘿嘿的黑客,替天行道
2012-10-02 11:10
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
以下是引用zhu224039在2012-10-2 11:10:28的发言:

赶紧结贴,穷的连发文贴都发不起了

结了你也没分!

授人以渔,不授人以鱼。
2012-10-02 14:04
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
得分:0 
回复 5楼 zhu224039
残念!

My life is brilliant
2012-10-02 15:44
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
得分:0 
回复 6楼 TonyDeng
为什么呢
我解决了他的问题,还把他应该了解的知识点也点出来了,这个为什么不给分

我要成为嘿嘿的黑客,替天行道
2012-10-02 15:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
以下是引用zhu224039在2012-10-2 15:56:47的发言:

为什么呢
我解决了他的问题,还把他应该了解的知识点也点出来了,这个为什么不给分

他这个问题帖没给分呀!

授人以渔,不授人以鱼。
2012-10-02 16:23
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
得分:0 
我败了

我要成为嘿嘿的黑客,替天行道
2012-10-02 16:31



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




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

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