练习4 - 3 在有了基本框架后,对计算器程序进行扩充就比较简单了。在该程序中加入取模 (%)运算符并注意负数的情况

本文介绍了如何在已有基础的计算器程序中添加取模运算符功能,并详细讨论了如何处理涉及负数的取模运算,确保程序的正确性和健壮性。
摘要由CSDN通过智能技术生成
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <math.h>

#define MAXOP 100 //操作数或运算符大小
#define NUMBER '0'//表示找到数的信号
#define MAXVAL 100//栈VAL的最大深度
#define BUFSIZE 100

int sp = 0;
double val[MAXVAL];//值栈
char buf[BUFSIZ];
int bufp = 0 ;

int gettop ( char s[] );//取出栈顶元素
void push (double f);//入栈操作
double pop (void);//出栈操作
int getch(void);
void ungetch( int c);

int main (){
	int type;
	double op2;
	char s[MAXOP];

	while ( ( type = gettop( s )) != EOF ){//检查字符是不是停止符
		switch (type)//检查字符
		{
			case NUMBER:
				push( atof (s) ); //如果返回的是‘0’,将读取的字符转换成浮点数,并压入栈中
				break;
			
			case '+':
				push ( pop () + pop ());
				break;

			case '*':
				push (pop() * pop() );
				break;

			case '-':
				op2 = pop();
				push ( pop() - op2);
				break ;
			
			case '/':
				op2 = pop();
				if( op2 != 0)
					push (pop() / op2 );
				else printf("err
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值