C语言怎么处理多位数,急~~~~~~C语言问题~~怎么把这个计算程序改成能计算多位整数? 爱问知识人...
这个程序只可以做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语言问题~~怎么把这个计算程序改成能计算多位整数? 爱问知识人...相关推荐
- 饭店菜单选择c语言,求C语言大神,帮忙做一下这个题,要源代码设计实现一个餐厅点餐系统? 爱问知识人...
求C语言大神,帮忙做一下这个题,要源代码 设计实现一个餐厅点餐系统,实现电子点餐.要求实现二级菜单: 一级菜单: 请选择: 1.点餐 2.查看已点菜品 3.添菜 求C语言大神,帮忙做一下这个题,要源代 ...
- c语言线性表的逆转,数据结构(C语言)设有一个线性表E,将线性表逆置,要求逆线性表占? 爱问知识人...
输入数据,输出数据,及线性表的长度, 询问是否查找数据,若查找则由用户输入需查找的数据,显示此数据在线性表中的位置(第几个) */ #include #include #define NULL 0 # ...
- c语言编写考试程序,c语言考试编写三个程序:1.从键盘输入一些字符,逐个把它们送到磁? 爱问知识人...
下面三段程序代码都是我在VC6.0编译器上调试通过的.请给分 //test1-2.c #include #include int main() { FILE *fp = fopen("fil ...
- 马踏棋盘问题的程序c语言,请各位C语言大神解释下马踏棋盘的程序,各模块功能,原理,方法,如? 爱问知识人...
//宏定义棋盘大小#define SIZE 100int board[M][M];typedef struct direct { int r,c,pathnum ;}dir ;typedef stru ...
- 网站的背景音乐在服务器上不播放,急急急...博客背景音乐添加后不能播放?老是跳出无法与服务器连接? 爱问知识人...
背景音乐为什么时常的就不放啊? 这个问题是音乐格式问题,不同播放器支持不同的音乐格式.请尽量选用*.mp3结尾的音乐. 解决方式如下: 播放器可设置为播放单曲或是60首歌两种模式: 播放单曲的背景音乐 ...
- 计算机语言栏在哪里,语言栏没了-语言栏消失了,怎么办?我电脑的语言栏为什么开机时总不找不见了?总 爱问知识人...
照楼主所说,应该是语言输入法程序损坏了,详细你参考下边答案吧! 恢复"语言栏"经典办法!: 1.如果windows的任务栏的输入法程序(windows xp是:\windows\s ...
- 为什么可以用c语言实现C编译器,c编译器-c语言的编译器是干什么用的 爱问知识人...
本人不才,仅就个人意见谈谈: 1.什么是编译器: 简单的说,编译器是一种将高级语言经过其解释,翻译成可以运行的二进制代码(有可能是汇编代码,但这种方式处理不一样,还有编译成其他形式的如JAVA是编译成 ...
- 幼儿园语言活动包括哪几类_语段从语言三个方面-幼儿园语言教育的内容包含哪些请从三方面进行回答?幼儿园语言教育的 爱问知识人...
幼儿园语言教育目标有哪三个层次? 1.幼儿园语言教育的总目标 幼儿园语言教育总目标,是幼儿园语言教育任务要求的总和,即幼儿园三年 语言教育所期望的最终结果, 又叫终期目标.它是幼儿园教育总目标的一个组 ...
- c语言什么叫为代码写注释算法,急!-伪代码不知哪位高手能够告诉我,什么是伪代码?伪代码编 爱问知识人...
表示一种算法,可以使用不同的方法,比如使用伪代码,自然语言,流程图,计算机语言等. 什么伪代码呢?伪代码(Pseudocode)是一种算法描述语言.使用伪代码的目的是为了使被描述的算法可以容易地以任何 ...
最新文章
- pytorch学习笔记(十二):详解 Module 类
- 函数式接口、方法引用
- web.xml 中的listener、 filter、servlet 加载顺序
- k8s dashboard_windows10 部署 docker+k8s 集群
- nyoj37回文字符串
- acer软件保护卡怎么解除_Acer软件保护卡下载
- Java获取姓名的首字母_java获取中文拼音首字母的实例
- Word常见基本操作-《和秋叶一起学Word》
- UE4学习-初识虚幻引擎(下载、安装、重定向问题、安装引擎、启动)
- 角度计算公式 角度换算 想知道1是多少度; 度和弧度的关系 弧微分: 曲率,曲半径,曲率圆:
- 使用IDEA工具配置和运行vue项目(详细其中的坑)
- 硬编码支持情况(一)
- 考试用计算机反思800字,期中考试总结反思作文800字
- 亚马逊员工的至暗时刻:1.5W人血淋淋的裁员开始..
- 微带线和带状线的SIEMC分析以及对DDR等长设置的影响
- TextView Recyclerview省略号相关
- 利用go-ethereum创建自己的以太坊账户
- 网页作业HTML+CSS+JS大作业——汽车租赁(47页) 加特效 web期末作业设计网页_汽车大学生网页设计作业成品
- Animation动画效果的实现
- NC文件的处理【netcdf】
热门文章
- 魔改部署自己专属的合成大西瓜(三:上线篇<踩坑篇>)
- Ubuntu18.04进入命令行模式和recovery-mode安装软件
- Android SurfaceFlinger 学习之路(五)----VSync 工作原理
- 网关做第n级拓扑的dns
- repo一个新工程使用步骤
- V4L2视频应用程序编程架构
- 深度学习自学(三十六):有效提升图像分类噪声鲁棒性的小波卷积网络
- educoder Redis安全与性能
- java web网上书城_javaweb网上书城项目
- java mysql resultset_Java数据库——ResultSet接口