注册 登录
编程论坛 JAVA论坛

问题及我的代码都在下面,可以在eclipse上运行,但是通过不了评测,求解。

goldAilie18 发布于 2018-09-22 23:16, 3252 次点击
本关的编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求:
使用number1和number2变量保存从命令行读取的两个int型数据。
使用number3变量保存number1和number2变量的和。
输出number3变量(注意:请使用System.out.print()方法)
评测说明
平台将自动编译补全后的代码,并生成若干组测试数据,接着根据程序的输出判断程序是否正确。
以下是测试样例:
测试输入:
3 4
预期输出:
7

程序代码:

import java.util.Scanner;
public class IO {
    public static void main(String[] args) {
        int number1=0;
        int number2=0;
        int number3;
        /********** Begin *********/
    Scanner one = new Scanner(System.in);
    if (one.hasNextInt()) {
        // 判断输入的是否是整数
        number1 = one.nextInt();}
    Scanner two = new Scanner(System.in);
    if (two.hasNextInt()) {
            // 判断输入的是否是整数
            number2 = two.nextInt();}
    number3 = number1 +number2;
    System.out.print(number3);


        /********** End *********/
    }
}

运行结果正确
但评测结果输入3 4 ,输出为3。
求解,求改正,谢谢。
3 回复
#2
幻紫灵心2018-09-28 22:12
你写的代码读入是要分两次输入的,两个回车。
而题目应该是只读一行数据,读了 3 赋值给了number1   number2没有读取到值,为零   输出的 3+0 = 3;
可以参考下面代码
程序代码:
import java.util.Scanner;
public class IO {
    public static void main(String[] args) {
        int number1=0;
        int number2=0;
        int number3;
        /********** Begin *********/
    Scanner scan = new Scanner(System.in);
    number1 = scan.nextInt();
    number2 = scan.nextInt();
    scan.close();
    number3 = number1 + number2;
    System.out.print(number3);
        /********** End *********/
    }
}
#3
尘安2018-09-29 17:56
程序代码:
import java.util.Scanner;

public class IO {

    public static void main(String[] args) {
        int number1=0;
        int number2=0;
        int number3;
        /********** Begin *********/
    Scanner input = new Scanner(System.in);    //只用定义一个就行了,不用重复定义
    number1 = input.nextInt();
    number2 = input.nextInt();
   

    number3 = number1 +number2;
    System.out.print(number3);
        /********** End *********/

    }

}
#4
林月儿2018-10-01 03:52
Scanner的nextLine方法可以接受字符串输入,取得的字符串再分割成两个,然后再转为整形去计算。
1