能否帮我用C写一个小学四年级四则混合运算100题的计算器,要有计算器界面的。

四则混合运算计算器C语言程序_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
四则混合运算计算器C语言程序
&&四则混合运算计算器C语言程序,可以带括号运算。
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩6页未读,
定制HR最喜欢的简历
你可能喜欢用C语言设计一个简单的计算器,
问题描述:
用C语言设计一个简单的计算器,要求能够对输入的数 1.进行+,-,*,/,运算;2.可以带括号( );3.不限定运算式的输入长度.(参考编译技术中语法分析原理)
问题解答:
#include void main( ){double a,b;char op,c;leep :printf("input 操作数a 运算符(op) 操作数b:");scanf("%lf%c%lf",&a,&op,&b);switch (op){case '+':printf("%.2lf+%.2lf=%.2lf\n",a,b,a+b);case '-':printf("%.2lf-%.2lf=%.2lf\n",a,b,a-b); case '*':printf("%.2lf*%.2lf=%.2lf\n",a,b,a*b);case '/':if (b != 0)\x05\x05{printf("%.2lf/%.2lf=%.2lf\n",a,b,a/b);}else\x05\x05{printf("除数不能是0!\n");}\x05default :printf("输入的运算符不合法!\n");}printf("Do you want to continue(Y/N or y/n)?");c=getche();printf("\n");if (c=='Y'||c=='y')else{printf("\t谢谢使用!\n");}}
我来回答:
剩余:2000字
int main(){float x,y,z;printf("请输入x,y的值:");scanf("%f %f",&x,&y);printf("请输入操作符:");scanf("%c",&c);switch(c){case ‘+’:printf("x+y=%f",x+y);case '-':p
这牵扯到高精度的问题.
怎么每个计算器的要求都不一样 再问: 算出来数值对就行,格式没关系 再答: 程序按照你的要求改了,你看看吧,有问题再问:代码如下,满意请采纳!!!#include&&stdio.h&#include&&stdlib.h&#include&&string.h&g
已经过测试,完全满足你的要求哈.#include "iostream"#include "string"void check(char *input, double &x, double &y, int &op, char * &err);double chage(char *c
因为0不能做除数. 再问: 那只检查b==0就可以了吧 为什么还要检查(long)b==0呢? 再答: 这个浮点数就没有办法求余数,只有整型数才可以。
#include "stdio.h" void main() { float x,y; scanf("%f%c%f",&x,&op,&y) ; switch(op) { case '+':printf("%.2f%c%.2f=%.2f\n",x,op,y,x+y); case '-':pr
#include int main(void){int data1,data2;printf("please input data1 op data2:");scanf("%d %c %d",&data1 ,&op ,&data2);switch (op){case '+':printf("%d + %
#include int do_Calculate(int a[],char b[],int j,int k){int m=0,n=0;int result=a[m++];while(j--&&k--){ switch(b[n++]){case '*':result=result*a[m++];case '
输入的是整数还是浮点数 包括括号吗 只有两个数的运算吗?请把要求写清楚#include#includeint main(){double a,b;scanf("%lf%c%lf",&a,&x,&b);if(x=='+')printf("%.2lf\n",a+b);else if(x=='-')printf
我个人觉得你的想法是不是错了呢,你用char型来输入但是数字是要存储于int型的数组里的吧,这个时候我建议你用一个char型数组和一个int型数组来分别存储符号和运算数,建议你用栈的数据类型.
/* Note:Your choice is C IDE */#include "stdio.h"#include "stdlib.h"#include "ctype.h"int n=0;char record[20];float product();float change();float muli(){\x09fl
写好了不能算小数,根据你的题意来的,如果输入小数,则只取整数部分运算,结果不能为负数 #include #include #include int deal(int op1,int op2,char op) //运算 { switch(op) { case '+':op1 += op2; case '-'
stdio.hscanf() 输入函数printf() 输出函数math.hdouble pow( double x,double y ); 乘方函数,计算x的n次幂其它的没了吧?
1000分估计有人会干这体力活.
“程序中分别有左右子树结点的个数”这句话表示没说清楚.我们数据结构刚好上机也有这道题,不过我用的是c++11,领会精神就行,不用太在意语法.struct&BitNode{&&&&ElemType&&&&&Bit
R返回菜单是不是结束的意思呢? 再问: 呃,不是,是返回再次计算 再答: #include main(void) { float digit, scanf("%f %c", &digit, &sign); sum = 0; while (sign != 'E'){ switch (sig
雌激素或雄激素诱捕雄虫或雌虫,导致种群性别比例失衡,降低种群密度
scanf("%c",&c[i]); } for(i=0;c[i]!='=';i++) { if(c[i]=='*'||c[i]=='/') { switch(c[i]) { case '*': a[i]=a[i]*a[i+1]; a[i+1]=0; t=i; h=i; case '/': if(a[i+
#include #include #define A1(a,b,c,d,e) gotoxy(a,b);printf("c%d=",d);scanf("%f",e);#define A2(a,b,c,d,e) gotoxy(a,b);printf("e%d=",d);scanf("%f",e);#define B1 d
也许感兴趣的知识&>&Java计算器
四则混合运算
Java计算器
四则混合运算
上传大小:3KB
主计算方法参数为一个混合运算字符串,四则混合运算
综合评分:0
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
VIP会员动态
热门资源标签
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
Java计算器
四则混合运算
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*投诉人姓名:
*投诉人联系方式:
*版权证明:
*详细原因:
Java计算器
四则混合运算用c语言编程四则混合运算计算器_百度知道
用c语言编程四则混合运算计算器
哪位高手可以帮我编写一个用c编写的四则运算计算器。要有优先级考虑和容错功能,而且要带括号的运算。例如输入2*(2*(1+2))按回车输出12并且考虑输入2*(2+2、2+(+2)、或者2*)1+...
哪位高手可以帮我编写一个用c编写的四则运算计算器。要有优先级考虑和容错功能,而且要带括号的运算。例如输入2*(2*(1+2))按回车输出12并且考虑输入2*(2+2
、2+(+2)、或者2*)1+2(等提示错误。不胜感激!!
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
星月小木木
来自电脑网络类芝麻团
星月小木木
采纳数:20700
获赞数:23983
参与团队:
#include&stdio.h&void main(){float a,b;printf(&请输入两个数a,b:&);scanf(&%f,%f&&a,&b);printf(&请输入符号d&);scanf(&%c&,d);switch(d){case'+':printf(&%f\n,a+b);case'-':printf(&%f\n,a-b);case'*':printf(&%f\n,a*b);case'/':printf(&%f\n,a/b);default:printf(&input error\n&);}}
获赞数:43
擅长:暂未定制
#include&stdio.h& #include&ctype.h& #include&stdlib.h& char token[61]; /*存放表达式字符串的数组*/ int n=0; void error(void) /*报告错误函数*/ { printf(&ERROR!\n&); exit(1); } void match(char expected) /*检查字符匹配的函数*/ { if(token[n]==expected) token[++n]=getchar(); else error(); } double term(void); /*计算乘除的函数*/ double factor(void); /*处理括号和数字的函数*/ double exp(void) /*计算加减的函数*/ { double temp=term(); while((token[n]=='+')||(token[n]=='-')) switch(token[n]) { case'+':match('+'); temp+=term();
case'-':match('-'); temp-=term();
} double term(void) {
double temp=factor(); while((token[n]=='*')||(token[n]=='/')) switch(token[n]) { case'*':match('*'); temp*=factor();
case'/':match('/'); div=factor(); if(div==0) /*处理除数为零的情况*/ { printf(&The divisor is zero!\n&); exit(1); } temp/=
} double factor(void) {
char number[61]; int i=0; if(token[n]=='(') { match('('); temp=exp(); match(')'); } else if(isdigit(token[n])||token[n]=='.') { while(isdigit(token[n])||token[n]=='.') /*将字符串转换为浮点数*/ { number[i++]=token[n++]; token[n]=getchar(); } number[i]='\0'; temp=atof(number); } else error();
} main() {
FILE *data=fopen(&61590_4.dat&,&at&); if(data==NULL) data=fopen(&61590_4.dat&,&wt&); if(data==NULL) return 0; token[n]=getchar(); result=exp(); if(token[n]=='\n') { token[n]='\0'; printf(&%s=%g\n&,token,result); fprintf(data,&%s=%g\n&,token,result); } else error(); fclose(data); return 0; getch(); }我觉得这个就可以.我试了!
本回答被提问者和网友采纳
jakieyoung
jakieyoung
擅长:暂未定制
使用反序.栈比如5 + 3在栈里表示为5 3 +扫描完整个用户输入的算式之后,从栈顶依次pop如果是一个运算符(+), 就从栈里取两个数字(5, 3)进行运算当然还有括号,比一般的+-*/级别高一些,可以再用一个栈放括号.最后两个栈都空,表名算式是正确的.
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。计算器是带括号的四则运算实际上利用的是栈后进先出的原则
转换思想:
#define _CRT_SECURE_NO_WARNINGS 1
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#define maxsize 1024
typedef struct
float data[maxsize];
void Initstack1(Stack1 *S)
S = (Stack1*)malloc(sizeof(Stack1));
S-&top = -1;
int Push1(Stack1 *S, float ch)
if (S-&top == maxsize - 1)
S-&data[S-&top] =
int Pop1(Stack1 *S, float ch)
if (S-&top == -1)
printf("栈上溢出!\n");
ch = S-&data[S-&top];
typedef struct
char data[maxsize];
void Initstack2(Stack2 *S)
S = (Stack2*)malloc(sizeof(Stack2));
S-&top = -1;
int Push2(Stack2 *S, char ch)
if (S-&top == maxsize - 1)
S-&data[S-&top] =
int Pop2(Stack2 *S, char ch)
if (S-&top == -1)
printf("栈上溢出!\n");
ch = S-&data[S-&top];
int Comop(char ch)
switch (ch)
char Prior[7][7] =
{ '&', '&', '&', '&', '&', '&', '&' },
{ '&', '&', '&', '&', '&', '&', '&' },
{ '&', '&', '&', '&', '&', '&', '&' },
{ '&', '&', '&', '&', '&', '&', '&' },
{ '&', '&', '&', '&', '&', '=', '& ' },
{ '&', '&', '&', '&', ' ', '&', '&' },
{ '&', '&', '&', '&', '&', '& ', '=' },
int Opid(char op1)
switch (op1)
case'+':return 0;
case'-':return 1;
case'*':return 2;
case'/':return 3;
case'(':return 4;
case')':return 5;
case'#':return 6;
default:return -123456;
char Precede(char op1, char op2)
a = Opid(op1); b = Opid(op2);
return(Prior[a][b]);
float Operation(float a, char op, float b)
switch (op)
return b +
return b -
return b *
return b /
return -123456;
void CreateExpression(char *exp)
if (exp == NULL)
scanf("%s", exp);
void TransmitExpression(char *exp, char postexp[])
Stack2 FZ;
Initstack2(&FZ);
int i = 0;
FZ.top = -1;
Push2(&FZ, '#');
FZ.data[FZ.top] = '#';
while (*exp != '\0')
if (!Comop(*exp))
while (*exp &= '0'&&*exp &= '9')
postexp[i++] = *exp;
postexp[i++] = '#';
switch (Precede(FZ.data[FZ.top], *exp))
Push2(&FZ, *exp);
x = FZ.data[FZ.top];
Pop2(&FZ, x);
postexp[i++] = FZ.data[FZ.top];
x = FZ.data[FZ.top];
Pop2(&FZ, x);
while (FZ.data[FZ.top] != '#')
postexp[i++] = FZ.data[FZ.top];
x = FZ.data[FZ.top];
Pop2(&FZ, x);
postexp[i] = '\0';
float EvaluateExpression(char *postexp)
Stack1 SZ;
Initstack1(&SZ);
float a, b,
SZ.top = -1;
while (*postexp != '\0')
switch (*postexp)
a = SZ.data[SZ.top];
Pop1(&SZ, a);
b = SZ.data[SZ.top];
Pop1(&SZ, b);
Push1(&SZ, Operation(a, *postexp, b));
while (*postexp &= '0'&&*postexp &= '9')
d = 10 * d + *postexp - '0';
postexp++;
Push1(&SZ, d);
SZ.data[SZ.top] =
postexp++;
return(SZ.data[SZ.top]);
int Error(char *exp)
int i = 0;
while (exp[i] != '\0')
((exp[i] == '+' || exp[i] == '-' || exp[i] == '*' || exp[i] == '/') && (exp[i + 1] == ')'))
|| ((exp[i] == '+' || exp[i] == '-' || exp[i] == '*' || exp[i] == '/') && (exp[i - 1] == '('))
|| (exp[i] == ')'&&exp[i + 1] == '(')
|| (exp[i] == '('&&exp[i + 1] == ')')
|| ((exp[i] == ')') && exp[i + 1] &= '0'&&exp[i + 1] &= '9')
|| (exp[i] &= '0'&&exp[i] &= '9'&&exp[i + 1] == '(')
|| (exp[0] == '+' || exp[0] == '-' || exp[0] == '*' || exp[0] == '/' || exp[0] == ')')
|| ((exp[i] == '+' || exp[i] == '-' || exp[i] == '*' || exp[i] == '/') && (exp[i + 1] == '+' || exp[i + 1] == '-' || exp[i + 1] == '*' || exp[i + 1] == '/'))
|| (exp[i] == '/'&&exp[i + 1] == '0')
if (exp[i] == '\0')
void menu()
printf("\t\t--------------------------------------------\n");
printf("\t\t|
printf("\t\t|
----------------
printf("\t\t|
printf("\t\t|
----------------
printf("\t\t|
printf("\t\t|
printf("\t\t|
printf("\t\t|
printf("\t\t--------------------------------------------\n");
printf("\t\t 请输入你要进行的操作:\n");
printf("\t\t a表达式求值 b清空 c退出\n");
void clear()
system("cls");
void Quit()
system("cls");
void main()
char exp[maxsize];
char postexp[maxsize] = { 0 };
scanf("%c", &c);
switch (c)
printf("请输入要计算的表达式:\n");
CreateExpression(exp);
if (!Error(exp))
TransmitExpression(exp, postexp);
printf("后缀表达式为:%s\n", postexp);
printf("表达式结果为:%s=", exp);
printf("%g\n", EvaluateExpression(postexp));
if (Error(exp))
printf("您输入的表达式有误!\n");
system("pause");
四则混合运算C++代码(中缀表达式)
在复习算法的时候,栈的应用举例中有一项就是计算中缀表达式的四则混合运算。根据算法自己写了一下程序。
1、程序分为两块,一部分中缀转成后缀,一部分计算后缀。其中使用到了堆栈,我自己做了一个简单地模板栈...
大数四则运算的C++实现
http://adultedu.ustc.edu.cn/img/pap/wh/大数四则运算的C++实现[摘要] 大数运算不仅仅运用在密码学中,还运用在一些物理学研究、生物学,化学等科目中。大数运算,意...
C++简单计算器实现(四则运算加括号)
c++简单计算器实现
C/C++带括号四则运算
(1).首先从string读入表达式,取出每一个字符后装入deque容器coll1中(源码在后面)。
(2).从该容器取出每一个元素,利用栈将中缀表达式转换成后缀表达式(可参考:http://blo...
(1)使用简单的C语句实现:要求不含左右括号,但是不限制10以内数据
char newstr[100];
int calcu...
大数四则运算的C++实现(转)[摘要]大数运算不仅仅运用在密码学中,还运用在一些物理学研究、生物学,化学等科目中。大数运算,意味着参加的值和计算结果通常是以上百位数,上千位数以及更大长度之间的整数运算...
&em&C&/em&语言下用单链表&em&实现&/em&一元多项式的&em&四则运算&/em& 立即下载
上传者: sncel_2009 时间...欧洲能源一哥照样用区块链玩转&em&2B&/em&的生意
未来3 年,什么样的技术人...
用不同的方式&em&实现&/em& 栈,适合初学者加深理解
C语言实现四则混合运算
struct SqStack{
没有更多推荐了,

我要回帖

更多关于 分数四则混合运算 的文章

 

随机推荐