zoukankan      html  css  js  c++  java
  • 指向函数的指针(委托)应用-计算器实现

    简易加减乘数计算器的实现

     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 }
    感谢来访,共同学习!
  • 相关阅读:
    Chapter 2: 随机变量
    数据集
    Chapter 1: 随机事件及其概率
    概率论与数理统计每周教学内容及作业
    概率论与数理统计教学内容
    Entity Framework search sequnce
    Runtime Complexity of .NET Generic Collection
    update the UI property cross thread
    打通技术的任督二脉
    windbg symbol path
  • 原文地址:https://www.cnblogs.com/dingxiaowei/p/3182646.html
Copyright © 2011-2022 走看看