我正在尝试编写一个程序,允许我输入多个整数,但它不允许我输入我的整数集

时间:2017-01-14 22:02:21

标签: java arrays sum int

我的代码不允许我输入多个整数,然后它可以计算总和,整数计数,最小值和正整数的总和。我不确定我是否需要其他方法,或者我是否需要错误的东西。

  import java.util.Scanner;
public class Assignment2 {
private static final Scanner input = null;
private static int n;

public static void main(String[] args){


    Scanner scan = new Scanner(System.in);
    int sum=0, minNumber=0, nCount=0, countEvenIntegers=0;
     Scanner sc = new Scanner(System.in);
     int i = sc.nextInt();


    //when code reads 0, code terminates
     int[] numbers = new int[4];
     for(int i=0; i<4; i++){
         numbers[i] =sc.nextInt();

     }

     while(!(n==0)){
           sum += n;
           n = input.nextInt();
        }

    class SumOfValues {
        public int sum(int...vals){
            int sum=0;
            for (int val : vals) {
                sum+= val;
            }
            return sum;
        }

    }
    class CountingInts{
        public void main(String[] args){
            Scanner input=new Scanner(System.in);
            int count=0;
            System.out.print("Numbers: ");
            while (input.hasNextInt()){
                input.nextInt();
                count++;
            }
            System.out.print(count);
            input.close();
        }
    }


    int sumPositive = 0;
    System.out.println("The minimum integer is " + minNumber +  "\nThe count of integers is " 
    + nCount + "\nThe sum of positive integers is " + sumPositive + "\nThe count of even integers in the sequence is " + 
            countEvenIntegers );


}




}

2 个答案:

答案 0 :(得分:1)

看起来你是一个绝对的初学者,所以我建议不要处理函数和类以及所有这些,并且只是线性地编写所有内容。我不确定为什么你拥有所有这些函数,类和变量,但为了帮助你,这可能是实现你想要做的事情的最简单方法。

import java.util.Scanner;

public class Assignment2 {
    public static void main(String[] args) {
        int sum = 0, minNumber = 0, nCount = 0, countEvenIntegers = 0;

        Scanner sc = new Scanner(System.in);

        while (true) {
            int input = sc.nextInt();

            if (input == 0) {
                break;
            }

            sum += input;
            nCount += 1;
        }

        System.out.println("The minimum integer is " + minNumber);
        System.out.println("The count of integers is " + nCount);
        System.out.println("The sum of positive integers is " + sum);
        System.out.println("The count of even integers in the sequence is " + countEvenIntegers);
    }
}

请注意,我没有添加最小的整数和偶数整数的数量。

答案 1 :(得分:0)

不完全确定你在代码中做了什么,因为你没有对输出的变量进行任何操作,因此不应该期望输出不是0。

另外,你的内心课很奇怪。

以下示例(基于您的代码)可以满足您的需求。有很多方法可以达到目标,但我认为这很简单:

import java.util.Scanner;
import java.util.*;

public class Assignment2{

private static final Scanner input = null;
private static int n;

    public static void main(String[] args){

        Scanner scan = new Scanner(System.in);
        int sum=0, minNumber=0, nCount=0, countEvenIntegers=0, sumPositive = 0;
        Scanner sc = new Scanner(System.in);
        List<Integer> numbers = new ArrayList<Integer>();

        while(true) {
            int i = sc.nextInt();

            if(i == 0) {
                break;
            }

            numbers.add(i);
        }
        if(numbers.size() > 0) {
            minNumber = numbers.get(0);
        }

        for (int number : numbers) {
            sum += number;
            if(minNumber > number) {
                minNumber = number;
            }
            if(number % 2 == 0) {
                countEvenIntegers++;
            }
            if(number > 0 ) {
                sumPositive += number;
            }
        }

        nCount = numbers.size();

        System.out.println("The minimum integer is " + minNumber +  "\nThe count of integers is " 
        + nCount + "\nThe sum of positive integers is " + sumPositive + "\nThe count of even integers in the sequence is " + 
                countEvenIntegers + "\nThe total sum is " + sum);
    }
}