某小学给学生留作业,要求为一个5000以内的加减乘除括号四则运算的题目。

来源:百度知道 编辑:UC知道 时间:2024/06/11 20:01:25
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;
if(opt=='*')return op1*op2;
if(opt=='/')return op1/op2;
return 0;
}

int main()
{
int op1,op2;
char opt;
//计算结果放在第一个操作数
op1 = getNextNum();
while(1)
{
opt = getOpt();
if ( opt == '=' ) break;
op2 = getNextNum();
op1 = caculate(op1,op2,opt);
}
printf("%d\n",op1);
}
return 0;
}

可以用堆栈实现,我以前学数据结构时写过,但程序不在手头上,现写就麻烦了。
===========================================================
68088905 - 江湖新秀 五级 回答的明显不符合要求。
1+2*3