|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
为什么会报错float类型的实参和float*的形参类型不符呢?
<#include<stdio.h>
float max( float array[10]);
float min( float array[10]);
float calc(float(*p)(float), float array[10]);
int main()
{
float array[10] = { 1,5,6,7,9,10,35,51,23,13 };
printf("The max of array is %f", calc(max, array[10]));//就是这里
printf("The max of array is %f", calc(min, array[10]));
return 0;
}
float max(float array[10])//下面是简单的求最小
{
float max = 0;
for (int i = 0; i < 10; i++)
{
if(array[i] > max)
{
max = array[i];
}
}
return max;
}
float min(float array[10])//这个是求最小
{
float min = 0;
for (int i = 0; i < 10; i++)
{
if (array[i] < min)
{
min = array[i];
}
}
return min;
}
float calc(float (*p)(float), float array[10])
{
return (*p)(array[10]);
}>
本帖最后由 jackz007 于 2020-11-23 00:07 编辑
- #include<stdio.h>
- float max(float array[]) ;
- float min(float array[]) ;
- float calc(float(*)(float *) , float array[]) ;
- int main()
- {
- float array[] = {1 , 5 , 6 , 7 , 9 , 10 , 35 , 51 , 23 ,13} ;
- printf("The max of array is %f\n", calc(max, array)) ;
- printf("The min of array is %f\n", calc(min, array)) ;
- return 0 ;
- }
- float max(float array[])
- {
- float max = array[0] ; // 这个地方不可以给 max 随便赋 0 值,因为,如果 array[] 中所有的元素都比 0 值小,那就会得到一个错误的结果
- for (int i = 1 ; i < 10 ; i ++)
- {
- if(array[i] > max)
- {
- max = array[i] ;
- }
- }
- return max ;
- }
- float min(float array[]) //这个是求最小
- {
- float min = array[0] ; // 这个地方不可以给 min 随便赋 0 值,因为,如果 array[] 中所有的元素都比 0 值大,那就会得到一个错误的结果
- for (int i = 1 ; i < 10; i ++)
- {
- if (array[i] < min)
- {
- min = array[i] ;
- }
- }
- return min ;
- }
- float calc(float (* p)(float*) , float array[])
- {
- return (* p)(array) ;
- }
复制代码
|
|