模拟简单运算器

【描述】

模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。

【输入】

输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。

【输出】

在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。

【输入示例】

1+2*10-10/2=

【输出示例】

10

#include<stdio.h>

	int main(){
		int num,sum=0,sign=0;
		char c;

		scanf("%d",&sum);

		while(1){

		scanf("%c", &c);
		if(c=='=')
			break;
		scanf("%d", &num);
		//一开始,这两个c,num的scanf写在了一起,导致最后的‘=’并不能起到终止输入的作用,因为还要输入个num 

		if(c=='+')
			sum+=num;
		else if(c=='-')
			sum-=num;
		else if(c=='*')
			sum*=num;
		else if(c=='/'){
			if(num!=0)
				sum/=num;
			else
				sign=1;
		}

		else{
			sign=1;
			break;
		}

		}

		if(sign){
			printf("ERROR");
		}
		else //一开始else没加,导致输出ERROR的同时也会输出sum
			printf("%d", sum);
	} 
时间: 2024-11-05 02:59:43

模拟简单运算器的相关文章

java 模拟简单搜索

Java 模拟简单搜索 实体类 package org.dennisit.entity; /** * * * @version : 1.0 * * @author : 苏若年 <a href="mailto:[email protected]">发送邮件</a> * * @since : 1.0 创建时间: 2013-4-8 下午04:51:03 * * @function: TODO * */ public class Medicine { private I

模拟 --- 简单括号匹配

Parencodings Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19067   Accepted: 11502 Description Let S = s1 s2...s2n be a well-formed string of parentheses. S can be encoded in two different ways: q By an integer sequence P = p1 p2...pn

JAVA学习第六十课 — UDP协议 &amp;基于多线程模拟简单的QQ聊天程序

UDP传输 UDP有发送端和接受端,有两大类,DatagramSocket.DatagramPacket 建立发送端和接收端 建立数据包 调用Socket的接收发送方法 关闭Socket 注意:发送端和接收端是两个独立的运行程序 UDP发送端演示 DatagramPacket(byte[] buf, int length, InetAddress address, int port) 构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号. public static voi

[BestCoder Round #3] hdu 4907 Task schedule (模拟简单题)

Task schedule Problem Description 有一台机器,并且给你这台机器的工作表,工作表上有n个任务,机器在ti时间执行第i个任务,1秒即可完成1个任务. 有m个询问,每个询问有一个数字q,表示如果在q时间有一个工作表之外的任务请求,请计算何时这个任务才能被执行. 机器总是按照工作表执行,当机器空闲时立即执行工作表之外的任务请求. Input 输入的第一行包含一个整数T, 表示一共有T组测试数据. 对于每组测试数据: 第一行是两个数字n, m,表示工作表里面有n个任务,

html+jquery模拟简单的树形展开

html+jquery模拟简单的树形展开 <!DOCTYPE html> <html> <head> <title>在线尝试 Bootstrap 实例</title> <link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet"> <script src="htt

[源码下载]Demo2.模拟简单登陆-效果图 基于networkcomms2.3.1

这是一个简单的模拟登陆的例子 客户端与服务器通讯时,使用了契约类,契约类的序列化用的的开源的protobuf.net框架 源码下载   框架部分源码请到这里下载 http://www.cnblogs.com/networkcomms

python操作MySQL 模拟简单银行转账操作

一.基础知识 1.MySQL-python的安装 下载,然后 pip install 安装包 2.python编写通用数据库程序的API规范 (1).数据库连接对象 connection,建立python客户端与数据库的网络连接,创建方法为 MySQLdb.Connect(参数) 参数有六个:     host(MySQL服务器地址,一般本地为127.0.0.1) port(MySQL服务器端口号) user(用户名) passwd(密码) db(数据库名称) charset(连接编码) con

linux之模拟简单登录的脚本

脚本如下: 运行结果: 转载请注明:小刘

Demo2.模拟简单登陆 契约类

这两个类在客户端服务器通讯时需要用到 暂时称为契约类吧 [ProtoContract] public class LoginContract { //用户ID [ProtoMember(1)] public string UserID { get; set; } //用户密码 [ProtoMember(2)] public string PassWord { get; set; } public LoginContract() { } public LoginContract(string us