c++怎么改错cannot convert parameter 1 from 'float' to 'float []'
#include<stdio.h>floataverage(floatarray[10]){inti;floataver,sum=0;for(i=0;i<10;i++)s...
#include<stdio.h>
float average(float array[10])
{
int i;
float aver,sum=0;
for(i=0;i<10;i++)
sum+=array[i];
aver=sum/10;
return (aver);
}
void main()
{
float score[10],aver;
int i;
printf("\n input 10 scores:");
for(i=0;i<10;i++)
scanf("%f",&score[i]);
aver=average(score[10]); /*这行怎么改*/
printf("\n average score is %5.2f\n",aver);
}
只改备注那行 展开
float average(float array[10])
{
int i;
float aver,sum=0;
for(i=0;i<10;i++)
sum+=array[i];
aver=sum/10;
return (aver);
}
void main()
{
float score[10],aver;
int i;
printf("\n input 10 scores:");
for(i=0;i<10;i++)
scanf("%f",&score[i]);
aver=average(score[10]); /*这行怎么改*/
printf("\n average score is %5.2f\n",aver);
}
只改备注那行 展开
6个回答
展开全部
数组作为实参的时候,只需要写数组名就可以了 改为:
aver=average(score);
再说那个数组的下表是从0开始的,10个元素就是0~9 ,没有10,你那样肯定错误。
aver=average(score);
再说那个数组的下表是从0开始的,10个元素就是0~9 ,没有10,你那样肯定错误。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
aver=average(score); 就行了....
score是变量名,你score[10]就变成第11个score的数组成员了,
不知这样解释你能不能接受~求采纳
score是变量名,你score[10]就变成第11个score的数组成员了,
不知这样解释你能不能接受~求采纳
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这段程序错得有点远,只改这一行是不行的,需要改两行。
首先,average函数的参数格式需要修改,如下,将
float average(float array[10])
{
}
改成
float average(float * array)
{
}
然后,备注那行:
aver=average(score[10]);
改成
aver=average(score);
首先,average函数的参数格式需要修改,如下,将
float average(float array[10])
{
}
改成
float average(float * array)
{
}
然后,备注那行:
aver=average(score[10]);
改成
aver=average(score);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cannot convert parameter 1 from 'float' to 'float []'
中文直译:不能将第一个参数从float类型转换到floa[]类型。
意思就是:函数调用时使用的参数类型与该函数定义的类型不一致。调用时送入的参数是float类型,而定义时的类型是float[]( float数组)。
错误代码:aver=average(score[10]); /*这行怎么改*/
score是个数组名,而score[10]表示数组中的一个元素,数组下标从0开始,score[10]就是第11个元素。
正确代码:aver=average(score); //根据前面介绍,参数直接写成数组名就对了
PS:关于数组认识的误区
当数组名后增加[]前面有数据类型时,是数组定义语句,方括号中的数字是数组的元素个数:
float average(float array[10])
float score[10];
除此之外,带数组名后带[]的形式就是数组元素的引用,方括号中的数字是数组的元素所在位置的下标:
scanf("%f", &score[i] );
sum += array[i];
中文直译:不能将第一个参数从float类型转换到floa[]类型。
意思就是:函数调用时使用的参数类型与该函数定义的类型不一致。调用时送入的参数是float类型,而定义时的类型是float[]( float数组)。
错误代码:aver=average(score[10]); /*这行怎么改*/
score是个数组名,而score[10]表示数组中的一个元素,数组下标从0开始,score[10]就是第11个元素。
正确代码:aver=average(score); //根据前面介绍,参数直接写成数组名就对了
PS:关于数组认识的误区
当数组名后增加[]前面有数据类型时,是数组定义语句,方括号中的数字是数组的元素个数:
float average(float array[10])
float score[10];
除此之外,带数组名后带[]的形式就是数组元素的引用,方括号中的数字是数组的元素所在位置的下标:
scanf("%f", &score[i] );
sum += array[i];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询