本文主要是介绍Problem A: 小学生的算术题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
实验10
Problem A: 小学生的算术题
Description
Yang上小学了。他非常喜欢做算术题。他经常给妈妈出题,写出很长的连加连减的式子,让妈妈算出结果。他来进行批改,就像老师一样。
虽然Yang只上一年级,最多就会1000以内的加减法。可是这样长的式子妈妈计算起来还是很容易出错。
聪明的妈妈想了一个办法,把Yang写的式子输入到一个程序里,用程序计算出结果。这样,总能有一个正确的结果用来检查计算错误了。
那么,你来试试编写这个程序吧。
Input
输入为多行,每行一个式子。至EOF结束。
每个式子都符合“?+?-?=”的形式,其中每个“?”代表一个整数(正整数或0)。整数通常会很多,但至少可以保证一个。任意两个整数之间用“+”或“-”分隔开。“+”、“-”代表加法、减法。
无论如何,式子总是以一个整数开头,以“=”结束。可以保证式子中除了数字、“+”、“-”之外,不含有其他多余的符号。
这些整数都很小,运算不会超出int范围。
Output
输出这个式子的运算结果,每个一行。
1-2+3-4+5-6+7-8+9=
1-2+3-4+5-6+7-8=
5-1-1+0-1-1-1=
10=
Sample Output
5
-4
0
10
答案1:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>int main(){int num;char ch;int ans=0;while(scanf("%d",&num)!=EOF){ans=0;ans+=num;while(scanf("%c",&ch)){if(ch=='+'){scanf("%d",&num);ans+=num;}else if(ch=='-'){scanf("%d",&num);ans-=num;}else if(ch=='='){printf("%d\n",ans);break;}}}return 0;
}
答案2:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>int main()
{int num;char c;int sum=0;int sign=1;while(scanf("%d",&num)!=EOF){sum+=sign*num;while(scanf("%c",&c)!=EOF){if(c=='+'){sign=1;break;}else if(c=='-'){sign=-1;break;}else if(c=='='){printf("%d\n",sum);sum=0;sign=1;break;}}}return 0;
}
这篇关于Problem A: 小学生的算术题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!