这个程序只可以做1位整数的4则运算和括号内计算,怎么改动可以计算多位整数呢?

#include

#include

int opnd_top=-1,optr_top=-1;

double

这个程序只可以做1位整数的4则运算和括号内计算,怎么改动可以计算多位整数呢?

#include

#include

int opnd_top=-1,optr_top=-1;

double opnd_stack[40];

char optr_stack[40];

char optr[7]={'+', '-' ,'*' ,'/' ,'(' ,')' ,'#'};

char priority[7][7]=

{

{'>','>','','>'},

{'>','>','','>'},

{'>','>','>','>','','>'},

{'>','>','>','>','','>'},

{'

{'>','>','>','>',' ','>','>'},

{'

};

double pop_nd()

{

double e;

e=opnd_stack[opnd_top--];

return e;

}

char pop_tr()

{

char e;

e=optr_stack[optr_top--];

return e;

}

void push_nd(double e)

{

opnd_stack[++opnd_top]=e;

}

void push_tr(char e)

{

optr_stack[++optr_top]=e;

}

double gettop_nd()

{

return opnd_stack[opnd_top];

}

char gettop_tr()

{

return optr_stack[optr_top];

}

int getIndex(char op)

{

int i;

for(i=0;i<7;i++)

if(optr[i]==op) return i;

return -1;

}

char getprior(char optr1,char optr2)

{

int i,j;

i=getIndex(optr1);

j=getIndex(optr2);

if(i==-1 || j==-1)

return ' ';

return priority[i][j];

}

double calculate(double a,double b ,char c)

{

double r=0;

switch©

{

case '+':

r=a+b;

break;

case '-':

r=a-b;

break;

case '*':

r=a*b;

break;

case '/':

r=a/b;

break;

}

return r;

}

void main()

{

char c;

push_tr('#');

printf("input a expression end with #\n");

c=getchar();

while(c!='#' || gettop_tr()!='#')

{

if(c>='0' && c<='9')

{

push_nd((int)(c-'0'));

c=getchar();

}

else

{

switch(getprior(gettop_tr(),c))

{

case '

push_tr©;

c=getchar();

break;

case '=':

pop_tr();

c=getchar();

break;

case '>':

push_nd( calculate(pop_nd(),pop_nd(),pop_tr()) );

break;

}

}

}

printf("the result is: %f\n",pop_nd());

}

展开

全部

C语言怎么处理多位数,急~~~~~~C语言问题~~怎么把这个计算程序改成能计算多位整数? 爱问知识人...相关推荐

  1. 饭店菜单选择c语言,求C语言大神,帮忙做一下这个题,要源代码设计实现一个餐厅点餐系统? 爱问知识人...

    求C语言大神,帮忙做一下这个题,要源代码 设计实现一个餐厅点餐系统,实现电子点餐.要求实现二级菜单: 一级菜单: 请选择: 1.点餐 2.查看已点菜品 3.添菜 求C语言大神,帮忙做一下这个题,要源代 ...

  2. c语言线性表的逆转,数据结构(C语言)设有一个线性表E,将线性表逆置,要求逆线性表占? 爱问知识人...

    输入数据,输出数据,及线性表的长度, 询问是否查找数据,若查找则由用户输入需查找的数据,显示此数据在线性表中的位置(第几个) */ #include #include #define NULL 0 # ...

  3. c语言编写考试程序,c语言考试编写三个程序:1.从键盘输入一些字符,逐个把它们送到磁? 爱问知识人...

    下面三段程序代码都是我在VC6.0编译器上调试通过的.请给分 //test1-2.c #include #include int main() { FILE *fp = fopen("fil ...

  4. 马踏棋盘问题的程序c语言,请各位C语言大神解释下马踏棋盘的程序,各模块功能,原理,方法,如? 爱问知识人...

    //宏定义棋盘大小#define SIZE 100int board[M][M];typedef struct direct { int r,c,pathnum ;}dir ;typedef stru ...

  5. 网站的背景音乐在服务器上不播放,急急急...博客背景音乐添加后不能播放?老是跳出无法与服务器连接? 爱问知识人...

    背景音乐为什么时常的就不放啊? 这个问题是音乐格式问题,不同播放器支持不同的音乐格式.请尽量选用*.mp3结尾的音乐. 解决方式如下: 播放器可设置为播放单曲或是60首歌两种模式: 播放单曲的背景音乐 ...

  6. 计算机语言栏在哪里,语言栏没了-语言栏消失了,怎么办?我电脑的语言栏为什么开机时总不找不见了?总 爱问知识人...

    照楼主所说,应该是语言输入法程序损坏了,详细你参考下边答案吧! 恢复"语言栏"经典办法!: 1.如果windows的任务栏的输入法程序(windows xp是:\windows\s ...

  7. 为什么可以用c语言实现C编译器,c编译器-c语言的编译器是干什么用的 爱问知识人...

    本人不才,仅就个人意见谈谈: 1.什么是编译器: 简单的说,编译器是一种将高级语言经过其解释,翻译成可以运行的二进制代码(有可能是汇编代码,但这种方式处理不一样,还有编译成其他形式的如JAVA是编译成 ...

  8. 幼儿园语言活动包括哪几类_语段从语言三个方面-幼儿园语言教育的内容包含哪些请从三方面进行回答?幼儿园语言教育的 爱问知识人...

    幼儿园语言教育目标有哪三个层次? 1.幼儿园语言教育的总目标 幼儿园语言教育总目标,是幼儿园语言教育任务要求的总和,即幼儿园三年 语言教育所期望的最终结果, 又叫终期目标.它是幼儿园教育总目标的一个组 ...

  9. c语言什么叫为代码写注释算法,急!-伪代码不知哪位高手能够告诉我,什么是伪代码?伪代码编 爱问知识人...

    表示一种算法,可以使用不同的方法,比如使用伪代码,自然语言,流程图,计算机语言等. 什么伪代码呢?伪代码(Pseudocode)是一种算法描述语言.使用伪代码的目的是为了使被描述的算法可以容易地以任何 ...

最新文章

  1. pytorch学习笔记(十二):详解 Module 类
  2. 函数式接口、方法引用
  3. web.xml 中的listener、 filter、servlet 加载顺序
  4. k8s dashboard_windows10 部署 docker+k8s 集群
  5. nyoj37回文字符串
  6. acer软件保护卡怎么解除_Acer软件保护卡下载
  7. Java获取姓名的首字母_java获取中文拼音首字母的实例
  8. Word常见基本操作-《和秋叶一起学Word》
  9. UE4学习-初识虚幻引擎(下载、安装、重定向问题、安装引擎、启动)
  10. 角度计算公式 角度换算 想知道1是多少度; 度和弧度的关系 弧微分: 曲率,曲半径,曲率圆:
  11. 使用IDEA工具配置和运行vue项目(详细其中的坑)
  12. 硬编码支持情况(一)
  13. 考试用计算机反思800字,期中考试总结反思作文800字
  14. 亚马逊员工的至暗时刻:1.5W人血淋淋的裁员开始..
  15. 微带线和带状线的SIEMC分析以及对DDR等长设置的影响
  16. TextView Recyclerview省略号相关
  17. 利用go-ethereum创建自己的以太坊账户
  18. 网页作业HTML+CSS+JS大作业——汽车租赁(47页) 加特效 web期末作业设计网页_汽车大学生网页设计作业成品
  19. Animation动画效果的实现
  20. NC文件的处理【netcdf】

热门文章

  1. 魔改部署自己专属的合成大西瓜(三:上线篇<踩坑篇>)
  2. Ubuntu18.04进入命令行模式和recovery-mode安装软件
  3. Android SurfaceFlinger 学习之路(五)----VSync 工作原理
  4. 网关做第n级拓扑的dns
  5. repo一个新工程使用步骤
  6. V4L2视频应用程序编程架构
  7. 深度学习自学(三十六):有效提升图像分类噪声鲁棒性的小波卷积网络
  8. educoder Redis安全与性能
  9. java web网上书城_javaweb网上书城项目
  10. java mysql resultset_Java数据库——ResultSet接口