你的弟弟刚做完了“100以内数的加减法”这部分的作业, 请你帮他检查一下。每道题目(包括弟弟的答案)的格式为a+b=c或者a-b=c, 其中a和b是作业中给出的,均为不超过100的非负整数; c是弟弟算出的答案,可能是不超过200的非负整数,也可能是单个字符"?",表示他不会算。 输入 输入文件包含不超过100行,以文件结束符结尾。每行包含一道题目,格式保证符合上述规定, 且不包含任何空白字符。输入的所有整数均不含前导0。 输出 输出仅一行,包含一个非负整数,即弟弟答对的题目数量。 解析: 该题的主要意思其实就是让你去判断运算是否正确,可是我们还要很多次的输入,所以我们可以考虑用Scanner中 的hasNext()方法,该方法结束的标志是ctrl+z,既然是让我们判断运算的正确与否,那我们可以把a+b=c给用String 中的方法来解决,首先先用indexOf()来找到“+”或者是“-”的位置,接下来我们可以用substring()来把a,b 分别给截取出来,c也是同理,然后通过Integer.parseInt()来把字符串转化为整型,接下来先看c是否为“?”, 如果c="?"直接给它赋值一个大的负数,然后再来判断a,b,c之间的关系即可。 代码如下: import java.util.Scanner; public class L1073 { public static void main(String[] args) { Scanner m=new Scanner(System.in); int count=0; while(m.hasNext()) { String str=m.next(); int number=str.indexOf("+"); if(number==-1) number=str.indexOf("-"); String a=str.substring(0, number); int num=str.indexOf("="); String b=str.substring(number+1,num); String c=str.substring(num+1); int a1=Integer.parseInt(a); int b1=Integer.parseInt(b); int c1; if(!c.endsWith("?")) c1=Integer.parseInt(c); else c1=-2000; char s=str.charAt(number); if(s=='+'&&c1==a1+b1) count++; else if(s=='-'&&c1==a1-b1) count++; } System.out.println(count); } } 有什么问题的话就在下方评论。
0.0分
0 人评分
数字整除 (C语言代码)浏览:847 |
C语言程序设计教程(第三版)课后习题6.9 (C++代码)浏览:560 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:689 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:865 |
大神老白 (C语言代码)浏览:768 |
C二级辅导-同因查找 (C语言代码)浏览:626 |
【绝对值排序】 (C++代码)浏览:720 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:1432 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:956 |
三角形 (C++代码)递推浏览:825 |