我不明白这些错误,谁能解释一下?
错误:一元“”的无效类型参数(具有“double”) 错误:一元“”的无效类型参数(具有“double”) 错误:一元“*”的无效类型参数(有“double”)
double getMedian(double *array, int *hours){
if (*hours <= 0) return 0;
if (*hours % 2) return (float)*array[(*hours + 1) / 2];
else{int pos = *hours / 2;
return (float)(*array[pos] + *array[pos + 1]) / 2;}}
最佳答案
您已经使用 []
运算符取消引用 array
。你想要的是:
double getMedian(double *array, int *hours){
if (*hours <= 0) return 0;
if (*hours % 2) return (float)array[(*hours + 1) / 2];
else{int pos = *hours / 2;
return (float)(array[pos] + array[pos + 1]) / 2;}}
请注意,x[y]
是 *(x + (y))
的简写。在您的代码中,您基本上具有 **array
的等价物。
关于c++ - 错误 : invalid type argument of unary '*' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22902985/