简易加减乘数计算器的实现
1 // 2 // main.c 3 // 指向函数的指针 4 // 5 // Created by 丁小未 on 13-7-10. 6 // Copyright (c) 2013年 dingxiaowei. All rights reserved. 7 // 8 9 #include <stdio.h> 10 11 int sum(int a,int b) 12 { 13 int c = a + b; 14 printf("%d + %d = %d",a,b,c); 15 return c; 16 } 17 18 int minus(int a,int b) 19 { 20 int c = a - b; 21 printf("%d - %d = %d",a,b,c); 22 return c; 23 } 24 25 int mul(int a,int b) 26 { 27 int c = a * b; 28 printf("%d * %d = %d",a,b,c); 29 return c; 30 } 31 32 int div(int a,int b) 33 { 34 int c = a / b; 35 printf("%d / %d = %d",a,b,c); 36 return c; 37 } 38 //count函数是用来做a跟b之间的运算 39 //至于做什么运算取决于p 40 int count(int a,int b,int(*p)(int ,int)) 41 { 42 return p(a,b); 43 } 44 45 int main(int argc, const char * argv[]) 46 { 47 //int result = count(5, 6,sum); 48 //printf("result:%d",result); 49 /* 50 //定义了一个指向函数的指针变量p 51 //被p指向的函数:返回值为int类型,结婚搜两个int类型的参数 52 int (*p)(int a,int b); 53 //让指针变量p指向sum函数 54 p = sum; 55 //利用指针变量p简介调用sum函数 56 //(*p)(5,6); 57 //这样也可以 58 p(5,6); 59 */ 60 int a,b,c,fuhao; 61 char flag='y'; 62 printf("******欢迎进入四则运算******** "); 63 do { 64 65 printf("请输入功能(1.加法;2.减法;3.乘法;4.乘法),以及输入两个运算数[例如想计算1+2:就输入1 1 2]:"); 66 scanf("%d %d %d",&fuhao,&a,&b); 67 switch (fuhao) { 68 case 1: 69 count(a, b, sum); 70 break; 71 case 2: 72 count(a, b, minus); 73 break; 74 case 3: 75 count(a, b, mul); 76 break; 77 case 4: 78 count(a, b, div); 79 break; 80 default: 81 printf("您输入的不正确,请重新选择功能!"); 82 break; 83 } 84 printf(" 您想继续吗?(y/n)"); 85 //flag = getchar(); 86 scanf("%c",&flag); 87 } while ('y'==flag); 88 return 0; 89 }