C 参数错误的不兼容类型

C 参数错误的不兼容类型,c,eclipse,C,Eclipse,错误出现在“k=functie(v[i],dim)”行上。 我做错了什么?这个 'incompatible type for argument 1 of 'functie' problema3.c /problema3.c line 23 C/C++ Problem' 使用浮点作为第一个参数调用functie,该浮点位于数组v的i位置 您的函数被声明为具有数组类型的参数(该参数衰减为指向浮点的指针)。 因此,您正在将一个浮点输入希望指针指向浮点的对象。 这就是编译器告诉您的 为了解决这

错误出现在“k=functie(v[i],dim)”行上。
我做错了什么?

这个

'incompatible type for argument 1 of 'functie'  problema3.c /problema3.c    line 23 C/C++ Problem'
使用浮点作为第一个参数调用
functie
,该浮点位于数组
v
i
位置
您的函数被声明为具有数组类型的参数(该参数衰减为指向浮点的指针)。
因此,您正在将一个浮点输入希望指针指向浮点的对象。
这就是编译器告诉您的

为了解决这个问题,您应该回顾两个非常相似的循环的原因,
一个在主,一个接一个地给
函数

一个在
functie
中,在数组中循环,但它没有得到。
一旦确定了要循环的位置,您会突然发现解决类型冲突很容易。
如果不知道您想做什么,就不可能给出解决方案代码

您的代码还存在其他问题,这些问题不在您的问题范围之内

例如,举几个例子:

  • 访问大小
    dim
    后面的数组元素1,但这仅对dim=100有效
  • 由于缺少大小检查,可能输入过大的阵列
  • 未检查scanf返回值
  • 不从非数字输入恢复

如果要将数组作为参数传输,则应传输数组的原始地址(它表示数组的名称)

在调用
functie
时,传递的是单个数组元素,而不是整个数组。该单个元素的类型为
float
,其中函数需要一个
float*
(指向float的指针)

如果要将整个数组作为参数传递,只需传递数组名称(无下标):


“出错”是一个几乎没有任何意义的标题。你应该更具体地说明你想做什么,出了什么问题。这段代码也迫切需要缩进。选择a并一致地使用它来帮助传达意图和意义。C中的数组是基于零的。我刚刚写道“我遇到了这个错误:'functie'problema3.C/problema3.C第23行C/C++问题的参数1的类型不兼容'错误在“k=functie(v[I],dim)”行上。那么我该怎么办呢?
'incompatible type for argument 1 of 'functie'  problema3.c /problema3.c    line 23 C/C++ Problem'
k=functie(v[i],dim);
`k=functie(v,dim);`
k = functie( v, dim );