9.3函数指针及其应用

/*
函数指针是指向函数的指针,指向存储这个函数第一条指令的地址,称为函数的入口地址。
*/
int Ascending(int a,int b);
{
    return a<b;
}
int Descending(int a,int b);
{
    return a>b;
}
void SelectionSort(int a[],int n,int (*compare)(int a,int b));
{
    int i,j,k;
    for(i=0;i<n;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        {
            if((*compare)(a[j],a[k]))
                k=j;
        }
        if(k!=i)
            Swap(&a[k],&a[j]);
    }
}
SelectionSort(score,n,Ascending);
SelectionSort(score,n,Descending);

9.4课后习题

//求函数的定积分
#include<stdio.h>
float fun1(float x)
{
    return 1+x*x;//定义第一个函数
}
float fun2(float x)
{
    return x/(1+x*x);//定义第二个函数
}
float fun(float (*f)(float),float a,float b)//定义一个函数指针
{
    flaot i,sum,n;
    sum=0;
    n=(b-a)/100;//微元法,分为100份
    for(i=a+n/2;i<b;i+=n)
    {
        sum+=n*(*f)(i);
    }
    return sum;
}
int main()
{
    float sum1,sum2;
    sum1=fun(fun1,0,1);
    sum2=fun(fun2,0,3);
    printf("sum1=%f,sum2=%f\n",sum1,sum2);
    return 0;
}
发布了34 篇原创文章 · 获赞 2 · 访问量 465

猜你喜欢

转载自blog.csdn.net/qq_42148307/article/details/104937504