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

冷不防 2023-07-24 08:50 126阅读 0赞

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


1、题目

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

1+2*10-10/2=

输出样例:

10


2、代码

  1. #include<stdio.h>
  2. #define ERROR -1
  3. int main(){
  4. int r=0,c,d1;
  5. char d2;
  6. scanf("%d",&d1);
  7. r+=d1;
  8. while(1){
  9. scanf("%c",&d2);
  10. if(d2=='+'){
  11. scanf("%d",&d1);
  12. r+=d1;
  13. }
  14. else if(d2=='-'){
  15. scanf("%d",&d1);
  16. r-=d1;
  17. }
  18. else if(d2=='*'){
  19. scanf("%d",&d1);
  20. r*=d1;
  21. }
  22. else if(d2=='/'){
  23. scanf("%d",&d1);
  24. if(d1==0){
  25. printf("ERROR");
  26. break;
  27. }
  28. r/=d1;
  29. }
  30. else if(d2=='='){
  31. printf("%d",r);
  32. break;
  33. }
  34. else{
  35. printf("ERROR");
  36. break;
  37. }
  38. }
  39. return 0;
  40. }

在这里插入图片描述

3、讨论

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

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

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

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

发表评论

表情:
评论列表 (有 0 条评论,126人围观)

还没有评论,来说两句吧...

相关阅读