四则运算

Python四则运算 Python四则运算 思路:输入一串表达式,比如20✳35=,然后运算出结果20✳35= 700 缺点:只能进行一次运算,如果输入连加连乘,就报错。后续使用正则表达式进行过滤,应该可以实现。 #-*- coding: utf-8 -*- def add(choice,count): for i in choice: if i == "+": choice = choice.replace("+","") break c 阅读详情

/*********************************************
Copyright zxf
Filename four_operrations.c
Author: zxf  Version: 1.0 Date:2012.04
Description: 输入一个字符串表达式,计算他的值
Function  List:
              1.topostfix()
       把输入的字符串表达式转换成中缀表达式
       2.value()
       计算中缀表达式的值
       3.main()
       给上面两个函数传递参数
**********************************************/

#include<stdio.h>
#include<stdlib.h>

/***************************************************
Filename: linkstack.h
Description: 一个链式字符栈的头文件
Function List:
             1.push()
      入栈
      2.pop()
      出栈
      3.get()
      取得栈顶元素
****************************************************/

#include"linkstack.h"

/***************************************************
Filename: linkstack_int.h
Description: 一个链式整形栈的头文件
Function List:
             1.push_int()
      入栈
      2.pop_int()
      出栈
      3.get_int()
      返回栈顶元素
****************************************************/

#include"linkstack_int.h"
#include"debug.h"

/**************************************
Function: topostfix()
Description: 把输入的字符串转换成中缀表达式
Called by: main()
Input: 字符串指针
Return: 指向中缀表达式字符串的指针
***************************************/

char * topostfix(char *str)
{
    char *postfix = (char *)malloc(100);  //申请空间
    char *head = postfix;                 //记录首地址
    while( (*str) != '\0')
    {
        switch(*str)                       //对字符串表达式逐个检索
 {
     case '(':
             {                      //‘(’直接入栈
          push(*str);
   str++;
   break;
      }
            case ')':
             {
          while( (top != NULL) && ( get()!='(' ) )
   {
       *postfix = get();
       pop();
       postfix++;          //出栈直到出栈的是'('
   }
   pop();
   str++;
   break;
      }
            case '+':
     case '-':
             {
          while( (top != NULL) && ( get() != '('))
   {
       *postfix = get();        
       postfix++;               //如果是操作符,如果
       pop();                   //优先级高于栈顶操作符
   }                            //就直接入栈,否则出栈
   push(*str);                  //直到栈顶为'('或优先
   str++;                       //级比其低再入栈
   break;
      }
     case '*':
     case '/':
             {
          while( (top != NULL) && (get()== '/'||get()== '*'))
   {
       *postfix = get();
       postfix++;
       pop();
   }
   push(*str);
   str++;
   break;
      }
            default:
            {
         while(*str >= '0' && *str <= '9' && *str != '\0')
         {
             *postfix = *str;     //如果是数字字符就直接赋值
      postfix++;
      str++;
         }
         *postfix = ' ';        //在每个操作数后,加个空格,方
         postfix++;             //便value()函数识别
         break;
     }
 }
    }
 while( top != NULL)
 {
     *postfix = get();   //把栈中剩余的操作符出栈
     pop();
     postfix++;
 }
 *postfix = '\0';
 return head;           //返回中缀表达式字符串的首地址
   
}

/*********************************************
Function:value()
Description:计算中缀表达式的值
Called by:main()
Input: 指向中缀表达式的字符串指针
Return: 中缀表达式的值
***********************************************/

int value(char *postfix)
{
    int result;
    while(*postfix != '\0')
    {
 while(*postfix >= '0' && *postfix <= '9')
 {
            result =0;
     while(*postfix != ' ')
     {
                result = result*10 + ( *postfix - '0'); //通过空格识别操作
  postfix++;                              //数,并把其入栈
     }
     //debug_msg("%d %d\n",__LINE__,result);
     push_int(result);
     postfix++;
        }
 if( *postfix != '\0')
 {
     int y = get_int();
     pop_int();
     int x = get_int();
     pop_int();
     switch(*postfix)                   //如果是操作符,就从栈中
     {                                  //取两个操作数操作,并把
         case '+':                      //结果写回栈中
          {
       result = x+y;
       break;
   }
         case '-':
          {
       result = x- y;
       break;
   }
  case '*':
          {
       result = x*y;
       break;
   }
  case '/':
          {
       result = x/y;
       break;
   }
     }
     //debug_msg("%d %d\n",__LINE__,result);
     push_int(result);           //把操作后的结果写回栈中
     postfix++;
 }
    }
    result = get_int();
    return result;
}

int main()
{
    int result;
    char *ptr = "121+10*(53-49+20)/((35-25)*2+10)";
    printf("原表达式为 %s\n",ptr);
    char *fix = topostfix(ptr);
    printf("转换后的中缀表达式为 %s\n",fix);
    result = value(fix);
    printf("结果为:%d\n",result);
    return 0;
}

java四则运算考试系统_小学生四则运算出题软件-基于java控制台的实现 、题目描述:1.使用-n参数控制生成题目的个数,例如Myapp.exe -n 10 -o Exercise.txt将生成10个题目。2.使用-r参数控制题目中数值(自然数、真分数和真分数分母)的范围,例如Myapp.exe -r 10将生成10以内(不包括10)的四则运算题目。该参数可以设置为1或其他自然数。该参数必须给定,否则程序报错并给出帮助信息。3.生成的题目中如果存在形如e1... 阅读详情

相关推荐

Java 四则运算

前言 Github地址 设计实现过程 数据结构 使用二叉树存放四则运算式,比如1+2×3÷(4-5)+6这个表达式就可以使用以下二叉树表示,中序遍历二叉树时就可以还原四则运算。 作业要求四则运算式中不能出现负数,(4-5)在二叉树中调换位置即可。 2.2 实现步骤 在主函数main()中输入-n,-r两个参数, 传入并执行generateMap()函数,在generateMap() 中用for循环new ArithmeticTree对象,在ArithmeticTree的构造器中,计算了四则运.

Yuki-r的博客 1605

Java简单四则运算

题目 从控制台输入只有一个四则运算符(+,-,,/)的简单四则运算式子,然后输出计算结果。例如输入345+23,则输出345+23=368;输入20100,则输出20*10=2000;如果输入非四则运算式子就给出提示信息。运算结果如下图所示 提示:本篇文章是面对初学者文章,其中未使用java语言中类与对象的概念,没有什么深层次和抽象的内容。学习者只需一步一步阅读就可理解程序的运行逻辑,与c语言编程较为相似。 不足需改正点:1.该程序没有使用函数,即没有将程序做模块化设计。2.该程序的判断条件仍未完善,例如

qq_48157192的博客 7371

别再只用GWR了!用Python的mgtwr包搞定时空地理加权回归(GTWR)实战

本文详细介绍了如何使用Python的mgtwr包进行时空地理加权回归(GTWR)实战,突破传统GWR模型的局限。通过核心差异解析、实战全流程演示和进阶技巧,帮助读者掌握GTWR在房价波动、污染物扩散等时空数据分析中的应用,提升模型预测精度。

weixin_30899023的博客 341

【头哥-Python】1.1四则运算

定义函数本质上是给一段程序起一个名字,方便重复调用这段程序。def 函数名(): # 函数定义pass # 缩进的一条或多条程序语句pass # 缩进块里的语句用于调用函数和给函数传递参数示例def add(m, n): # 定义函数add,调用时3传给m,5传给n"""计算m和n的和并带计算表达式输出"""print(f'{m} + {n} = {m + n}') # 输出3 + 5 = 8a = int(input()) # 输入3b = int(input()) # 输入5。

qq_67502430的博客 7881

【物理模拟】PBD算法详解

参考MatthiaMuller的十分钟物理(他就是PBD算法的发明者)

beidou111的博客 9498

2.数字芯片时序正确的前提—Max-transition

芯片物理设计中最基本的Max-transition检查

weixin_43868998的博客 5419

python四则运算

github项目地址 : https://github.com/kongkalong/python PSP表格 : PSP2.1 预估耗时(小时) 实际耗时(小时) Planning .Estimate 72 48 Development ...

weixin_30735745的博客 5793

LangChain与SkillLite集成:AI Agent安全沙箱实践

在AI与自动化技术领域,安全沙箱是实现可信计算的核心机制。其原理是通过资源隔离与权限控制,构建受限的执行环境。技术价值在于平衡功能开放性与系统安全性,尤其适用于处理用户提交的非受信代码或敏感数据。典型应用场景包括AI插件系统、在线代码评测平台等。本文以LangChain框架与SkillLite沙箱的深度集成为例,详解如何通过命名空间隔离、cgroups限制等机制,为AI Agent赋予安全执行动态技能的能力。其中涉及的关键技术点包括Python运行时隔离、动态资源配额管理,以及如何防范Shell注入等常见攻

weixin_34189116的博客 405

java四则运算代码_Java实现简单四则运算

GitHub 项目地址PSPPSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)Planning计划1010· Estimate· 估计这个任务需要多少时间1010Development开发655600· Analysis· 需求分析(包括学习新技术)3035· Design Spec· 生成设计文档3040· Design Review· ...

weixin_35880151的博客 3950

关于基于Midas Civil API的二次开发——PyMiMi

现在写了第一条博客,希望是一个好的开始,能够每天抽出一两个小时或者更多的时间来写写代码,研究研究。我发现在我的工作中存在着大量的重复性工作,对于文档的开发是好办的,毕竟网上有现成库,只需要pip一下拿来用就好,但是对于Midas而言,在24版本之前官方都是没有一个可以使用的接口的,可能mct文件算半个?

ManiacsTraitor的博客 1848

Abaqus子程序开发避坑指南:从UMESHMOTION到齿轮磨损分析实战

本文深入探讨Abaqus子程序开发中的关键技术与避坑指南,重点解析UMESHMOTION在齿轮磨损分析中的实战应用。从开发环境搭建、调试框架构建到性能优化和大规模计算,提供系统化的解决方案。通过真实案例展示如何避免内存泄漏、网格畸变等常见问题,并介绍数据驱动的磨损预测等前沿技术,帮助工程师提升仿真精度与效率。

weixin_30892037的博客 87

html四则运算自动出题程序

要求: 1、100以内四则运算,题目自动生成; 2、页面需要有计算结果输入框,提交按钮; 3、用户提交结果之后系统能自动计算成绩; 4、系统能提示用户答错的题号,可以在答错的题号后做一个标记。 未提交界面如下: 提交后界面如下: 代码: html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>小学四则运算自动出题&l

Blocking The Sky 1916

HT7036计量芯片SPI通信与数据读取实战解析

本文详细解析HT7036计量芯片的SPI通信与数据读取实战,涵盖SPI时序配置、命令发送、数据读取及常见问题排查。重点介绍如何通过SPI接口与MCU通信,实现电能数据的稳定采集与处理,为智能电表等应用提供实用解决方案。

vscode5coder的博客 264

四则运算的正则校验

场景:我们选取变量,变量使用${} 或者#{}包裹起来,然后可以四则运算(±*/和括号),需要校验正确性。

神zhi殇的博客 2217

零基础学习simulink-- 基于自适应模糊PID控制的直流电机速度控制系统

通过上述代码实现,您可以逐步创建和搭建一个基于自适应模糊PID控制的直流电机速度控制系统。该系统能够根据电机的状态和误差实时调整PID参数,确保电机速度稳定在设定范围内。自适应模糊PID控制具有较强的鲁棒性和适应性,能够在存在不确定性和扰动的情况下提供快速且精确的控制性能。Simulink提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。直流电机建模:建立直流电机的动态模型,包括电枢电压、电流、转速和负载扭矩。自适应模糊PID控制器设计。

amy_mhd的博客 413

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C#四则运算的实现

看大话数据结构 利用栈实现四则运算这一块儿正好是只有讲解没有代码实现的 于是照着书上的原理自己写了个四则运算的C#代码 以后可以考虑到作为自己的类库中的组件 主要涉及的是逆波兰式 程序主要部分为逆波兰式的产生 以及通过逆波兰式产生最终的四则运算结果 使用的时候只需输入四则运算

xboxeer的专栏 7600

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

学校头歌作业1_2四则运算(头歌作业[Python])

在优快云上补充前几期的内容。

counting_stars1的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

python四则运算程序_四则运算(Python)

四则运算程序一、信息二. 题目要求写一个能自动生成小学四则运算题目的程序,然后在此基础上扩展:1除了整数以外,还要支持真分数的四则运算,例如:1/6+1/8=7/242程序要求能处理用户的输入,判断对错,累积分数3程序支持可以由用户自行选择加、减、乘、除运算4使用-n参数控制生成题目的个数,例如Myapp.exe -n 10,将生成10个题目三、代码import random ...

weixin_39677870的博客 4041

java四则运算简单界面版

Java 实现简单四则运算测试

weixin_57254695的博客 1525

1.1 四则运算(project)

定义函数本质上是给一段程序起一个名字,方便重复调用这段程序。

nianci602的博客 1389

python四则运算完整代码_2/20Python之四则运算

190219具体的每个数字,在python中就是一个对象。每个对象,在内存中都有一个自己的地址,那就是它的身份。可以用【id()】函数来查看对象的内存地址,可以区别2个相似数是否值一样。(这个函数得到的内存地址,只读不能修改)在python中,小数与整数有别。3和3.0时不同的对象,其内存地址也是不一样的。对象的类型数字在python中有2种类型:整数和浮点数,分别用【int】和【float】表示...

weixin_39989668的博客 7472

java四则运算思路_java四则运算

代码存放coding地址:https://coding.net/u/Jerryii/p/ArithmeticTopic/git/blob/master/.gitignore一、题目描述:实践能力的提高当然就是得多动手了,那么就从第一个个人项目开始吧,用一周的时间完成一个基于控制台的四则运算程序,实现一个自动生成小学四则运算题目的命令行程序。从《构建之法》第一章的 “程序” 例子出发,像阿超那样,花...

weixin_31081677的博客 1017

python 四则运算

用python实现简单的四则运算

m0_67334179的博客 2万+

python四则运算2.0

github项目地址: https://github.com/kongkalong/python PSP 预估耗时(分钟) Planning .Estimate 48*60 Development .Analysis 30 .D...

weixin_30888707的博客 1255
上一篇: 电话客户服务模拟
下一篇: 关于递归的资料整理
zhouxf_cn
博客等级 码龄14年 54粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值