C 参数错误的不兼容类型
错误出现在“k=functie(v[i],dim)”行上。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位置 您的函数被声明为具有数组类型的参数(该参数衰减为指向浮点的指针)。 因此,您正在将一个浮点输入希望指针指向浮点的对象。 这就是编译器告诉您的 为了解决这
我做错了什么?这个
'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 );