|
发表于 2024-5-5 15:44:43
|
显示全部楼层
#include <stdio.h>
double add(double,double);
double sub(double,double);
double mul(double,double);
double divi(double,double);
double (*cal(char))(double,double);
double add(double a,double b)
{
return a+b;
}
double sub(double a,double b)
{
return a-b;
}
double mul(double a,double b)
{
return a*b;
}
double divi(double a,double b)
{
return a/b;
}
double (*cal(char c))(double,double)
{
switch(c)
{
case '+': return add;
case '-': return sub;
case '*': return mul;
case '/': return divi;
}
}
int main()
{
double a,b;
//char c;
printf("请输入两个数;");
scanf("%lf%lf",&a,&b);
printf("对这两个数进行加减乘除后的结果是:");
printf("%.2lf ",(*cal('+'))(a,b));
printf("%.2lf ",(*cal('-'))(a,b));
printf("%.2lf ",(*cal('*'))(a,b));
if(b != 0)
{
printf("%.2lf\n",(*cal('/'))(a,b));
}
else
{
printf("除数不能为0!\n");
}
return 0;
}
ps:MD5的只能半成品,没搞懂为什么unsigned char 类型,能用 十六进制输出?  |
|