首页 > 软件开发 > C语言 >

C语言编写简单计算器

来源:互联网 2023-03-16 19:12:17 版权归原作者所有,如有侵权,请联系我们

这个计算器比较简单,只能计算加减乘除,用到了递归思想

Ii5办公区 - 实用经验教程分享!

Ii5办公区 - 实用经验教程分享!

方法/步骤

  • 1

    首先打开VC

    Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    C语言编写简单计算器Ii5办公区 - 实用经验教程分享!

  • 2

    文件》》新建

    Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    C语言编写简单计算器Ii5办公区 - 实用经验教程分享!

  • 3

    新建一个C 文档

    Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    C语言编写简单计算器Ii5办公区 - 实用经验教程分享!

  • 4

    先声明主函数还有变量Ii5办公区 - 实用经验教程分享!

    #include stdio.h>Ii5办公区 - 实用经验教程分享!

    char token;Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    C语言编写简单计算器Ii5办公区 - 实用经验教程分享!

  • 5

    程序用到几个函数,下面我来介绍下Ii5办公区 - 实用经验教程分享!

    这个函数是运算符匹配程序Ii5办公区 - 实用经验教程分享!

    void match( char expectedToken ) /*对当前的标志进行匹配*/Ii5办公区 - 实用经验教程分享!

    {Ii5办公区 - 实用经验教程分享!

    if( token == expectedToken ) token = getchar(); /*匹配成功,获取下一个标志*/Ii5办公区 - 实用经验教程分享!

    else Ii5办公区 - 实用经验教程分享!

    { Ii5办公区 - 实用经验教程分享!

    printf("cannot matchn");Ii5办公区 - 实用经验教程分享!

    exit(1); /*匹配不成功,退出程序*/Ii5办公区 - 实用经验教程分享!

    }Ii5办公区 - 实用经验教程分享!

    }Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    C语言编写简单计算器Ii5办公区 - 实用经验教程分享!

  • 5相关内容非法爬取自百度经验
  • 6

    这个函数是计算低优先级的运算,比如,加减Ii5办公区 - 实用经验教程分享!

    int low( void )/*用于计算表达式中级别最低的运算*/Ii5办公区 - 实用经验教程分享!

    {Ii5办公区 - 实用经验教程分享!

    int result = mid(); /*计算比加减运算优先级别高的部分*/Ii5办公区 - 实用经验教程分享!

    while(( token == ' ' ) || ( token == '-' ))Ii5办公区 - 实用经验教程分享!

    if ( token == ' ')Ii5办公区 - 实用经验教程分享!

    {Ii5办公区 - 实用经验教程分享!

    match(' '); /*进行加法运算*/Ii5办公区 - 实用经验教程分享!

    result = mid();Ii5办公区 - 实用经验教程分享!

    break;Ii5办公区 - 实用经验教程分享!

    }Ii5办公区 - 实用经验教程分享!

    else if ( token == '-')Ii5办公区 - 实用经验教程分享!

    {Ii5办公区 - 实用经验教程分享!

    match('-'); /*进行减法运算*/Ii5办公区 - 实用经验教程分享!

    result -= mid(); Ii5办公区 - 实用经验教程分享!

    break;Ii5办公区 - 实用经验教程分享!

    }Ii5办公区 - 实用经验教程分享!

    return result;Ii5办公区 - 实用经验教程分享!

    }Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    C语言编写简单计算器Ii5办公区 - 实用经验教程分享!

  • 7

    这个函数是计算高优先级运算,乘除

    Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    int low( void )/*用于计算表达式中级别最低的运算*/Ii5办公区 - 实用经验教程分享!

    {Ii5办公区 - 实用经验教程分享!

    int result = mid(); /*计算比加减运算优先级别高的部分*/Ii5办公区 - 实用经验教程分享!

    while(( token == ' ' ) || ( token == '-' ))Ii5办公区 - 实用经验教程分享!

    if ( token == ' ')Ii5办公区 - 实用经验教程分享!

    {Ii5办公区 - 实用经验教程分享!

    match(' '); /*进行加法运算*/Ii5办公区 - 实用经验教程分享!

    result = mid();Ii5办公区 - 实用经验教程分享!

    break;Ii5办公区 - 实用经验教程分享!

    }Ii5办公区 - 实用经验教程分享!

    else if ( token == '-')Ii5办公区 - 实用经验教程分享!

    {Ii5办公区 - 实用经验教程分享!

    match('-'); /*进行减法运算*/Ii5办公区 - 实用经验教程分享!

    result -= mid(); Ii5办公区 - 实用经验教程分享!

    break;Ii5办公区 - 实用经验教程分享!

    }Ii5办公区 - 实用经验教程分享!

    return result;Ii5办公区 - 实用经验教程分享!

    }Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    C语言编写简单计算器Ii5办公区 - 实用经验教程分享!

  • 8

    这个函数是计算,乘除和带括号的运算Ii5办公区 - 实用经验教程分享!

    int high( void )/*用于计算表达式中级别最高的运算,即带()的运算*/Ii5办公区 - 实用经验教程分享!

    {Ii5办公区 - 实用经验教程分享!

    int result; Ii5办公区 - 实用经验教程分享!

    if( token == '(' ) /*带有括号的运算*/Ii5办公区 - 实用经验教程分享!

    {Ii5办公区 - 实用经验教程分享!

    match( '(' );Ii5办公区 - 实用经验教程分享!

    result = low();/*递归计算表达式*/Ii5办公区 - 实用经验教程分享!

    match(')');Ii5办公区 - 实用经验教程分享!

    }Ii5办公区 - 实用经验教程分享!

    else if ( token>= '0'&&token='9' ) /*实际的数字*/Ii5办公区 - 实用经验教程分享!

    {Ii5办公区 - 实用经验教程分享!

    ungetc( token, stdin ); /*将读入的字符退还给输入流,为读取整个数*/Ii5办公区 - 实用经验教程分享!

    scanf( "%d", &result ); /*读出数字*/Ii5办公区 - 实用经验教程分享!

    token = getchar(); /*读出当前的标志*/Ii5办公区 - 实用经验教程分享!

    }Ii5办公区 - 实用经验教程分享!

    elseIi5办公区 - 实用经验教程分享!

    {Ii5办公区 - 实用经验教程分享!

    printf("The input has unexpected charn"); /*不是括号也不是数字*/Ii5办公区 - 实用经验教程分享!

    exit(1);Ii5办公区 - 实用经验教程分享!

    }Ii5办公区 - 实用经验教程分享!

    return result;Ii5办公区 - 实用经验教程分享!

    }Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    C语言编写简单计算器Ii5办公区 - 实用经验教程分享!

  • 9

    主函数Ii5办公区 - 实用经验教程分享!

    main()Ii5办公区 - 实用经验教程分享!

    { Ii5办公区 - 实用经验教程分享!

    int result; /*运算的结果*/ Ii5办公区 - 实用经验教程分享!

    printf("*****************************************n");Ii5办公区 - 实用经验教程分享!

    printf("**Welcome to use this simple calculator**n"); Ii5办公区 - 实用经验教程分享!

    printf("**Please input a multinomial like **n");Ii5办公区 - 实用经验教程分享!

    printf("** 6-3*(5-1)/2 14/7 **n");Ii5办公区 - 实用经验教程分享!

    printf("*****************************************n");Ii5办公区 - 实用经验教程分享!

    token = getchar(); /*载入第一个符号*/Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    result = low(); /*进行计算*/Ii5办公区 - 实用经验教程分享!

    if( token == 'n' ) /* 是否一行结束 */Ii5办公区 - 实用经验教程分享!

    printf( "The answer is : %dn", result );Ii5办公区 - 实用经验教程分享!

    else Ii5办公区 - 实用经验教程分享!

    {Ii5办公区 - 实用经验教程分享!

    printf( "Unexpected char!");Ii5办公区 - 实用经验教程分享!

    exit(1); /* 出现了例外的字符 */Ii5办公区 - 实用经验教程分享!

    }Ii5办公区 - 实用经验教程分享!

    scanf("%d",result);Ii5办公区 - 实用经验教程分享!

    return 0;Ii5办公区 - 实用经验教程分享!

    }Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    C语言编写简单计算器Ii5办公区 - 实用经验教程分享!

  • 10

    程序结果

    Ii5办公区 - 实用经验教程分享!

    Ii5办公区 - 实用经验教程分享!

    C语言编写简单计算器Ii5办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!Ii5办公区 - 实用经验教程分享!


    标签: C语言

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号