《c语言入门题目21》编写程序,定义和调用如下函数求两个浮点数的和、差、积、商,要求通过函数指针回调函数,一行中输入两个浮点数,以空格间隔分行并输出两个浮点数的和、差、积、商。

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

前言:

和、差、积、商+函数指针回调函数

========================================================================

题目:

编写程序,定义和调用如下函数:

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;
}

========================================================================

结果图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ColoredFeather

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值