| 
 | 
 
 
发表于 2020-12-7 15:13:38
|
显示全部楼层
   本楼为最佳答案    
 
 
- #include <stdio.h>
 
 - #include<stdlib.h>
 
  
- float add(float num1, float num2)
 
 - {
 
 -     return num1 + num2;
 
 - }
 
  
- float sub(float num1, float num2)
 
 - {
 
 -     return num1 - num2;
 
 - }
 
  
- float mul(float num1, float num2)
 
 - {
 
 -     return num1 * num2;
 
 - }
 
  
- float divi(float num1, float num2)
 
 - {
 
 -     return num1 / num2;
 
 - }
 
  
- float cal(float (*fp)(float num1, float num2), float num1,float num2)
 
 - {
 
 -     return (*fp)(num1,num2);
 
 - }
 
  
- float (*select(char op))(float num1, float num2)
 
 - {
 
 -     switch(op)
 
 -     {
 
 -         case '+': return add;
 
 -         case '-': return sub;
 
 -         case '*': return mul;
 
 -         case '/': return divi;
 
 -     }
 
 - }
 
  
- int main()
 
 - {
 
 -     float (*fp)(float, float);
 
 -     printf("请输入一个算式: ");
 
 -     float num1,num2;
 
 -     char op;
 
 -     scanf("%f%c%f",&num1,&op,&num2);
 
 -     fp = select(op);
 
 -     printf("%f %c %f = %f",num1,op,num2,cal(fp,num1,num2));
 
 -     return 0;
 
 - }
 
 
  复制代码 |   
 
 
 
 |