PTA 浙大版《C语言程序设计(第3版)》题目集 习题6-7 简单计算器

习题6-7 简单计算器

模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。

输入格式:
输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。

输出格式:
在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。

输入样例:

1+2*10-10/2=

输出样例:

10

笔者原创答案(非搬运,运行满分通过):

#include 
int main() {
	int num; // 每次输入的数字
	int sum = 0; // 每次计算结果
	char a; // 每次输入的运算符
  
  
	scanf("%d", &num);	// 输入第一个数字
 	sum = num;	// 传递给 sum
  	// 输入一个字符,前面的数字部分会存入 num 中
  	a = getchar();	// 获取那个字符存入 a
  
  	while(1) { // 一直循环
  		scanf("%d", &num); // 获取第二个数字进行计算
    	if (a == '+') sum = sum + num;
    	else if (a == '-') sum = sum - num;
    	else if (a == '*') sum = sum * num;
    	else if (a == '/') 
      		if (num == 0) {printf("ERROR") ;break;}
      		else sum = sum / num;
    	else if (a == '=') {printf("%d", sum); break;} 
    	else {printf("ERROR"); break;}
    
    	a = getchar();	// 再次获取
    	if(a == '=') {printf("%d", sum); break;} 
  	}
  	return 0;
}

你可能感兴趣的:(PTA,浙大版,C,语言)