一生一世陪你


私信TA

用户名:wodeshijie

访问量:23437

签 名:

我要好好地写代码..........

等  级
排  名 428
经  验 4926
参赛次数 1
文章发表 19
年  龄 10
在职情况 学生
学  校 河南农业大学
专  业

  自我简介:

我就是我,可能不是太好,但是我就是我,谁也不能取代........

  你的弟弟刚做完了“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 人评分

  评论区

  • «
  • »