zoukankan      html  css  js  c++  java
  • 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 就行了。

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

  • 相关阅读:
    kill新号专题
    LSB 简介
    linux之eval用法(高级bash程序员的必修之技)
    squid日志配置与轮询
    004_ssh连接慢的问题的解决?
    python操作redis-set
    python操作 redis-list
    python操作redis-hash
    python操作redis--string
    python连接redis002
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302586.html
Copyright © 2011-2022 走看看