#include "stdio.h"
#include "conio.h"
#define M 8
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
float max(float a[],int n); /**//*函数声明*/
void main()
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
clrscr();
float sumf,sump;
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
float a[M]=
{11,2,-3,4.5,5,69,7,80};
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
float (*p)(float a[],int); /**//*定义指向函数的指针 p*/
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
p=max; /**//*函数名(函数入口地址)赋给指针p*/
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
sump=(*p)(a,M); /**//*用指针方式调用函数*/
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
sumf=max(a,M); /**//*用函数名调用max()函数*/
printf("sump=%.2f\n",sump);
printf("sumf=%.2f\n",sumf);
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
float max(float a[],int n)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
int k;
float s;
s=a[0];
for(k=0;k<n;k++)
if(s<a[k]) s=a[k];
return s;
}
在主函数中输入三角形的两条直角边,求三角形的面积、斜边长
#include "stdio.h"
#include "conio.h"
#include "math.h"
float area(int,int);
float length(int,int);
float f(int,int,float (*p)(int,int));
void main()
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
clrscr();
int m,n;
float s,l;
float (*q)(int,int);
scanf("%d,%d",&m,&n);
q=area;
s=f(m,n,q);
l=f(m,n,length);
printf("Area of the right triangle is %.2f\n",s);
printf("Length of the hypotenuse is %.2f\n",l);
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
float area(int a,int b)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
float z;
z=a*b/2;
return z;
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
float length(int a,int b)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
float z;
z=sqrt(a*a+b*b);
return z;
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
float f(int a,int b,float (*p)(int,int))
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
float y;
y=(*p)(a,b);
return y;
}