代码改变世界

增加循环出口 防止出口特殊

2018-02-09 21:23  江林杰  阅读(168)  评论(0)    收藏  举报

实现一个简单的计算器,可以计算一个只包含加减法的表达式。

 

输入

输入只有一行,是一个算术表达式,只包含加减法。符号和数字之间没有空格,保证中间结果和计算结果在Int范围内。

 

输出

输出算术表达式计算结果。

 

样例输入

123+4-5

样例输出

122
 
 
 
 
遇到问题:
1· 时间超限 原因是 *****出口特殊且单一****
 
      ******scanf 不能接受 ’\n'*****
 
 
 
正确的代码如下:
 

#include<stdio.h>
int main()
{ int sum=0,a;
 char ch;
 ch='+';
 while(ch!='\n')
 { 
  scanf("%d",&a);
  if(ch=='+') sum+=a;
  else
  {
  if(ch=='-') sum-=a;
  else //**********************************************************************此处两行设置了另一个出口 去除了出口=='\n'的特殊性
  break;
  }
  ch=getchar();//****************************************************此处 修改了scanf不能接收'\n'的错误 !!!!!!!!!!!!!!!!!!!!!!
 }
 printf("%d\n",sum);
 return 0;

 }