cannot convert 'float*' to 'int*'for argument "1" to "float aver(float*,int)"
时间: 2024-02-25 09:59:40 浏览: 157
这个问题的错误提示是类型不匹配,函数aver()的第一个参数应该是一个float类型的指针,但是实际传入的是一个int类型的指针。你需要将第一个参数改为float类型的指针,或者将传入的指针强制转换为float类型的指针。
示例代码:
```
float aver(float* nums, int count) {
float sum = 0.0;
for (int i = 0; i < count; i++) {
sum += nums[i];
}
return sum / count;
}
int main() {
int arr[] = { 1, 2, 3, 4, 5 };
int count = sizeof(arr) / sizeof(int);
// 传入int类型的指针
float result = aver(arr, count); // 报错:cannot convert 'int*' to 'float*' for argument "1" to "float aver(float*,int)"
// 将第一个参数改为float类型的指针
float arr2[] = { 1.0, 2.0, 3.0, 4.0, 5.0 };
result = aver(arr2, count); // 正确
// 将传入的指针强制转换为float类型的指针
result = aver((float*)arr, count); // 正确,但不推荐这种做法
return 0;
}
```
阅读全文