用c语言编写四则混合运算的简易计算器

支持小括号运算,简单的四则混合运算,用c语言

#include <cstdio>
#include <ctype.h>

struct eoe {
FILE* fp;
char token;
eoe() { fp = stdin; }
eoe(FILE* p) { fp = p; }
inline void getToken();
inline int exp();
inline int term();
inline int factor();
inline int result();
};

void eoe::getToken() {
while (1) {
token = fgetc(fp);
if (token == EOF || token == ';' || token == '=') {
token = 0; break;
} else if (!isspace(token)) break;
}
}

int eoe::exp() {
int t = term();
while (1) {
if (token == '+') getToken(), t += term();
else if (token == '-') getToken(), t -= term();
else break;
} return t;
}

int eoe::term() {
int t = factor();
while (1) {
if (token == '*') getToken(), t *= term();
else if (token == '/') getToken(), t /= term();
else break;
} return t;
}

int eoe::factor() {
int t;
if (token == '(') getToken(), t = exp(), getToken();
else if (isdigit(token)) ungetc(token, fp), fscanf(fp, "%d", &t), getToken();
return t;
}

int eoe::result() {
int t; getToken(); t = exp(); return t;
}

int main() {
eoe e;
printf("%d\n", e.result());
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-06-14
我也想弄个这个题的答案,初学者,不会,呵呵

怎样用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器?
1、打开visual C++ 6.0-文件-新建-文件-C++ Source File;2、输入预处理命令和主函数:include<stdio.h> \/*函数头:输入输出头文件*\/ void main()\/*空类型:主函数*\/ 3、定义变量:int a,b,d; \/*定义变量的数据类型为整型*\/ char c;\/*定义变量的数据类型为字符型*\/ 4、输入四则运算...

用C语言编程实现一个简单的四则运算计算器
include <stdio.h> \/\/函数,读数操作数 int getNextNum(){ int ret;scanf("%d",&ret);return ret;} \/\/函数,读运算符 char getOpt(){ return getchar();} \/\/函数,计算 int caculate(int op1 , int op2 ,char opt){ if(opt=='+')return op1+op2;if(opt=='-')return op1-op2;...

请问怎么用c语言写一个可以实现加减乘除四则运算的计算器!
}算法流程:1,如果读入数字就把它存入数组中,2,如果读入加,减号就存如另一个数组用,如果读入乘 除号,就再读入一个数字,从存数字的数组拿出两个数字进行乘 除运算。把结果存入数组中,这么重复直到读入回车键的符号。3,读到回车符号后,就从存符号的数组中拿出一个符号,再从存数字的数组中拿...

如何用c语言编写可以实现四则运算的计算器
num[k]=n; n=0; sign[k++]=*p; } p++; } num[k]=n;} void find(char *p) { int i,n; for(i=0;*p;i++) { if(*p=='*'||*p=='\/') { n=(*p=='*' ? num[i]*num[i+1] : num[i]\/num[i+1]); num[i]=n; del(...

在C语言环境下开发简单的四则运算的命令行计算器
void main(){ int a,b;char op;printf("输入一个数");scanf("%d",&a);printf("\\n输入运算符:");scanf("%s",&op);printf("\\n输入另一个数");scanf("%d",&b);switch(op){ case '+':printf("\\n =%d\\n",a+b);break;case '-':printf("\\n =%d\\n",a-b);break;case '...

用c语言做一个简单的计算器。要求能做四则运算就够了,越简单越好。刚学...
double left, right; \/* 运算数*\/ double result; \/* 结果 *\/ char oper; \/* 操作符*\/ char flag; \/* 标记,用来存储输入的字符,判断用户是否要退出*\/ printf("欢迎使用!\\n"); flag = 'a'; \/*可以赋给flag除‘q’外任意数值*\/ while( flag != 'q' ) { printf("输入表达式(如a+b,仅支持...

c语言编写 编写一个简单的计算器,实现两个整型数的四则运算。
1、打开CodeBlocks,新建一个空白文件,先定义头文件和主函数,接着写程序多大的主体:2、首先定义所需要的变量,将变量定义为浮点型,定义输入函数,将刚才的x和y定义为计算的变量,将c定义为选择计算方式的变量。用switch语句,将c作为选择变量,填写计算方式的选项,最后在主函数中输入一个输出函数来...

C语言 用if else if写一个简单的四则运算的计算器。只需要两个整数运算...
printf("")scanf("%d%c%d",&a,&ch,&b);if(ch=='+'){c=a+b;}else if(ch=='-'){c=a-b;}else if(ch=='*'){c=a*b;}else if(ch=='\/'){c=a\/b;}printf("%d%c%d=%d",a,ch,b,c);return 0;}不知可否,虽然else加不加都没什么差别 不实用的代码,嘛~随便写的 ...

用c语言编程简单的加减乘除以及混合运算的计算器
2017-01-05 请问怎么用c语言写一个可以实现加减乘除四则运算的计算器! 3 2013-09-04 求用C语言编写一简单计算器程序,要求:实现简单地加减乘除就行... 20 2015-12-22 用c语言编一个计算器程序,能够实现基本的加减乘除,能够输出运... 2006-04-17 用c语言编程四则混合运算计算器 27 2013-07-21 求...

C语言问题: 设计一个简易计算器,要求:能够进行任意多个数的加减乘除四...
{if(c>='0'&&c<='9') {*ntop=c-'0';ntop++;c=getchar();} \/\/是数字就进数字栈 else switch(zhuanhuan(*(ftop-1),c)){case -1:*ftop=c;ftop++; \/\/Push(OPTR,c)c=getchar();break;case 0:ftop--;x=*ftop; \/\/Pop(OPTR,x)c=getchar();break;case 1:ftop...

相似回答