c++怎么改错cannot convert parameter 1 from ✀float✀ to ✀float []✀

2025-02-05 11:59:31
推荐回答(5个)
回答1:

1、要将 1.234567 这个小数转化为字符串"1.234567“。首先,要包含头文件 cstdio(即 stdio.h)。

2、接着,要定义一个字符缓冲区 buffer,大小要足以容纳要转换的 double 变量。

3、再使用sprinf_s进行转换,转换的字符串保存在buffer中。

4、这时,就可以用string类型变量str来接收值了。

5、为了验证结果,我们加句代码输出这个str的值。

6、程序运行的结果。

回答2:

数组作为实参的时候,只需要写数组名就可以了 改为:
aver=average(score);
再说那个数组的下表是从0开始的,10个元素就是0~9 ,没有10,你那样肯定错误。

回答3:

aver=average(score); 就行了....
score是变量名,你score[10]就变成第11个score的数组成员了,
不知这样解释你能不能接受~求采纳

回答4:

这段程序错得有点远,只改这一行是不行的,需要改两行。

首先,average函数的参数格式需要修改,如下,将
float average(float array[10])
{
}
改成
float average(float * array)
{
}

然后,备注那行:
aver=average(score[10]);
改成
aver=average(score);

回答5:

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];