2

我有一个问题陈述

问题

编写一个程序来计算 2 个数字的总和并打印输出。

输入

第 1 行:一个整数。

第 2 行:一个整数。

输出:输出由一个对应于总和的整数组成,后跟一个新行

样本输入 I

3 
1 

样本输出 I

4 

样本输入 II

13 
10

样本输出二

23

我的解决方案是

import java.io.IOException;
import java.util.InputMismatchException;
import java.util.Scanner;

public class Add {

public static void main(String[] args)throws IOException
{
    int a=0, b=0, sum;
    Scanner sc=new Scanner(System.in);
    System.out.println("Enter the numbers to be summed");
    try{
        a=sc.nextInt();
        sc.nextLine();
        b=sc.nextInt();
    }
    catch(InputMismatchException e){
        System.out.println("Please enter an Integer number");
        e.printStackTrace();}
    catch(Exception e){System.out.println(e);}

    sum=a+b;

    System.out.println(sum);
    sc.close();
}

}

我应该将它提交到一个在线目录,我假设它会尝试自动执行程序。当我这样做时,它会告诉我

错误答案差不多了,再想一想

我认为在你决定打电话寻求增援之前,考虑一个小时就足够了。

4

5 回答 5

10

输出应该是“一个对应于总和的整数,后跟一个新行”。

但是你的程序的输出是

Enter the numbers to be summed
<the sum>
于 2013-08-11T10:44:05.643 回答
2

这些可以通过两个命令行参数或 Scanner 类或 BufferReader 来解决。

使用命令行参数。

public Class Sum
   {

     public static void main(String [] args) 
     {
          int a ,b,c;
          a=Integer.parseInt(args[0]);   //using Integer wrapper Class to cast object  
                                           to primitive Datatype Integer.

          b= Integer.parseInt(args[1])  ;

          c= a+b;


         System.out.println("The Sum of two number is : "+c);
     }

   }

使用具有代码重用性的命令行参数(方法总和)

public Class Sum
   {

     public static long sum(int a,int b)
     {
          return a+b;
     }

     public static void main(String [] args) 
     {
          int a ,b;
          long c;           // for long summation of numbers .

          a=Integer.parseInt(args[0]);   //using Integer wrapper Class to cast object 
                                           to primitive Datatype Integer.

          b= Integer.parseInt(args[1])  ;

          c= sum(a,b);


         System.out.println("The Sum of two number is : "+c);
     }

   } 

使用 java.util.Scanner 中的外部资源

    public Class Sum
   {

     public static void main(String [] args) 
     {
          int a ,b;
          long c;

          Scanner scan;

          scan = new Scanner(System.in) ;  //Taking system Keyboard for input.

          System.out.println("Enter the value of A: \n");

          a= ss.nextInt() ;

          System.out.println("Enter the value of B: \n");

          b=ss.nextInt();

          c= (long) (a+b); 

         System.out.println("The Sum of two number is : "+c);
     }

   }
于 2013-08-11T11:59:41.277 回答
2

删除sc.nextLine(). 它使它移动到下一行,但由于两个整数在同一行,所以 b 的值保持为 0。

于 2013-08-11T10:31:57.803 回答
0

尝试这个:

import java.util.Scanner;
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int num1 = 0;
        int num2 = 0;
        int sum = 0;

        System.out.println("Enter Number: ");
        num1 = in.nextInt();

        System.out.println("Enter Number2: ");
        num2 = in.nextInt();

        sum = num1 + num2;
        System.out.println(sum);
    }
}
于 2013-11-14T15:07:45.363 回答
0
package stack;
public class Satck {
    public static int MAX=100;
     int top;
    int [] a= new int [MAX];
  boolean  empty()
    {
        return (top<0);
    }
 Satck()
    {
        top=-1;
    }
 void push(int x)
 {
         a[++top]=x;
     
 }
 public int pop()
 {
    
     int x=a[top--];
         return x;
    
 }
 public int peek()
 {
         int x=a[top];
         return x;
 }
 public static void main(String[] args) {
     
     Satck s=new Satck();
     s.push(10);
     s.push(11);
     s.push(12);
     s.push(13);
     System.out.println(s.peek());
     System.out.println(s.empty());
     System.out.println(s.pop());
     System.out.println(s.peek());
}
}
于 2021-09-12T17:13:20.627 回答