#include <stdio.h>
// 圆的周长 pi * 2R
// 面积 pi *r *r
//定义常量pi
const float pi = 3.14;
//计算圆的周长
double add(int r){
return 2 * r * pi;
}
//计算圆的面积
double minus(int r){
return pi * r * r;
}
//自定义函数calac 方法 接收的参数 int 接收计算函数类型的函数名
double calac (int r,double(*func)(int)){
return func(r);
}
int main() {
//定义一个整形变量"r"用来接收圆的半径
int r = NULL; //这里把NULL换成0也是一样的效果
printf("请输入圆的半径:");
scanf("%d",&r); //拿到r的地址
double circumference = calac(r,add); //调用圆的周长的函数方法 并将其存到circumference
double area = calac(r,minus); //调圆的面积的函数方法 并将其存到area
printf("%f\n",circumference); //直接打印圆的周长 %f是以小数形式输出单、双精度度数,隐含输出6位小数
printf("%f\n",area); //直接打印圆的面积
return 0;
}
int r = NULL 之所以用NULL而不是直接用0 是因为在指针里NULL表示的是一个标识符常量,表示的是0,0也是一种地址,同时也是一种空指针。(这里算是我的临时想法)