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

C语言编写简单计算器

来源:互联网 2023-03-16 19:12:17 411

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

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

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

方法/步骤

  • 1

    首先打开VC

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

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

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

  • 2

    文件》》新建

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

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

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

  • 3

    新建一个C 文档

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

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

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

  • 4

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

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

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

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

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

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

  • 5

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

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

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

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

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

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

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

    printf("cannot match\n");PI6办公区 - 实用经验教程分享!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 9

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 10

    程序结果

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

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

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

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


    标签: C语言

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