• PTA刷题笔记(C语言) | 7-20 简单计算器 (20分)


    开始刷题,感觉代码量和基础太渣了,导致数据结构不会,重头慢慢刷吧~
    在这里插入图片描述


    1、题目

    在这里插入图片描述
    输入样例:

    1+2*10-10/2=

    输出样例:

    10


    2、代码

    #include<stdio.h>
    #define ERROR -1
    int main(){
        int r=0,c,d1;
        char d2;
        
        scanf("%d",&d1);
        r+=d1;
        while(1){
        	scanf("%c",&d2);
        	if(d2=='+'){
        		scanf("%d",&d1);
        		r+=d1;
    		}
    		else if(d2=='-'){
    			scanf("%d",&d1);
        		r-=d1;
    		}
    		else if(d2=='*'){
    			scanf("%d",&d1);
        		r*=d1;
    		}
    		else if(d2=='/'){
    			scanf("%d",&d1);
    			if(d1==0){
    				printf("ERROR");
    				break;
    			}
        		r/=d1;
    		}
    		else if(d2=='='){
        		printf("%d",r);
        		break;
    		}
    		else{
    			printf("ERROR");
    			break;
    		}
    	}
        return 0;
    }
    

    在这里插入图片描述

    3、讨论

    很简单的一个题,但是分了好多种可能,比如加减乘除,等于号,分母为0,再就是非法字符。

    字符和数字是紧挨着的,所以很简单,但凡是稍微改改,这题难度就大了一些。

    讨论四种运算的情况,除法多了一个分母,等于号直接输出,非法字符交给 else 就行了。

    妙啊!!!
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    微服务架构的设计原则
    分布式锁
    银行卡Bin和Logo
    Docker部署Jenkins
    云服务器配置 docker java mysql mongodb redis nginx jenkins 环境
    Mybatis使用心德
    CTO 技能图谱
    React 面试问题
    Dart语法学习
    第一篇博客
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302586.html
Copyright © 2020-2023  润新知