前言:
和、差、积、商+函数指针回调函数
========================================================================
题目:
编写程序,定义和调用如下函数:
double add(double x, double y);
double sub(double x, double y);
double mul(double x, double y);
double div(double x, double y);
求两个浮点数的和、差、积、商,要求通过函数指针回调函数。
一行中输入两个浮点数,以空格间隔。
分行输出两个浮点数的和、差、积、商。
代码:(用到的软件:VisualStudio)
(用Dev-C++的把scanf_s换成scanf就行了)
如何通过函数指针回调函数?
int Func(int x); /*声明一个函数*/
int (*p) (int x); /*定义一个函数指针*/
p = Func; /*将Func函数的首地址赋给指针变量p*/
举个例子:
#include<stdio.h>
int test(int, int);//声明函数
int main() {
int a,b,c;
int (*p)(int, int);//定义指针函数
p = test;//把函数test赋给指针变量p, 使p指向test函数
scanf_s("%d%d", &a, &b);
c = (*p)(a, b);
printf("%d", c);
return 0;
}
int test(int a, int b) {//定义函数
int mul = a * b;
return mul;
应该不难理解(doge),就三步,先要有一个函数可以让指针指,所以你首先要有一个函数,有了一个函数之后你就想要定义一个指针函数,定义完指针函数之后,把函数赋值给指针就可以啦。
剩下的求和、差、积、商应该不难吧。
double he = x + y;
double cha = x - y;
double ji = x * y;
double shang = x / y;
全部代码:
#include<stdio.h>
double add(double x, double y);
double sub(double x, double y);
double mul(double x, double y);
double div(double x, double y);
int main(void) {
double(*p)(double,double);
double x, y, c;
p = add;
scanf_s("%lf %lf",&x,&y);
c = (*p)(x, y);
p = sub;
c = (*p)(x, y);
p = mul;
c = (*p)(x, y);
p = div;
c = (*p)(x, y);
return 0;
}
double add(double x, double y) {
double he = x + y;
printf("%lf\n",he);
return he;
}
double sub(double x, double y) {
double cha = x - y;
printf("%lf\n", cha);
return cha;
}
double mul(double x, double y) {
double ji = x * y;
printf("%lf\n", ji);
return ji;
}
double div(double x, double y) {
double shang = x / y;
printf("%lf\n", shang);
return shang;
}
========================================================================
结果图:

本文介绍了一个使用函数指针实现的程序,该程序可以接收两个浮点数并利用函数指针来计算它们的和、差、积和商。通过具体的代码示例详细展示了函数指针的定义、赋值和调用过程。

1299

被折叠的 条评论
为什么被折叠?



