-2

In the program if I enter 0 it exits, the problem is when I am trying to print the array afterwards there will be alot of 0 if I choose to exit. How do I prevent that being print.

package lu.ics.Sohail.labbar;

import java.util.Arrays;
import java.util.Scanner;

public class November2012 {
    public static void main(String[] args) {
        int tal;
        int summa=0;
        Scanner input = new Scanner(System.in);
        int [] array = new int [100];
        int min = Integer.MAX_VALUE;
        int max = 0;

        for (int i=0 ; i<array.length; i++ ){
            System.out.print("Ange tal 0 avsluta");
            array[i] = input.nextInt();
            summa =summa+array[i];
            if (array[i]==0) {
                break;
            }
            while(array[i]<min)
            { 
                min=array[i];
            }
            while(array[i]>max)
            { 
                max=array[i];
            }
        }

        System.out.print("Talen är " + Arrays.toString(array));    
        System.out.println();
        System.out.print("Summan är " + summa);
        System.out.println();
        System.out.print("Max är " + max);
        System.out.println();
        System.out.print("Min är " + min);
    }
}
4

4 に答える 4

0

ingeter 配列の使用。ただし、配列を印刷すると null が出力されます。印刷中に行わない条件を追加します。

package com.prasad.samples.views;

import java.util.Arrays;
import java.util.Scanner;

public class November2012 {
    public static void main(String[] args) {
        int tal;
        int summa=0;
        Scanner input = new Scanner(System.in);
        Integer [] array = new Integer [100];
        System.out.println(array[0]);
        int min = Integer.MAX_VALUE;
        int max = 0;

        for (int i=0 ; i<array.length; i++ ){
            System.out.print("Ange tal 0 avsluta");
            array[i] = input.nextInt();
            summa =summa+array[i];
            if (array[i]==0) {
                break;
            }
            while(array[i]<min)
            { 
                min=array[i];
            }
            while(array[i]>max)
            { 
                max=array[i];
            }
        }

        System.out.print("ar " + Arrays.toString(array));    
        System.out.println();
        System.out.print("summan ar " + summa);
        System.out.println();
        System.out.print("Max ar " + max);
        System.out.println();
        System.out.print("Min ar " + min);
    }
}
于 2013-10-21T12:46:51.373 に答える
0

独自のサイズで配列を作成する必要があります。配列の作成中に 100 個の静的メモリが割り当てられ、すべての値が 0 に割り当てられます。

 System.out.print("Enter the array size");
 int arraySize = input.nextInt();
 int [] array = new int [arraySize];

ArrayList<Integer>それ以外の場合は、数値を格納するために使用 します

于 2013-10-21T12:34:57.907 に答える
0

今なら分かると思います。

int [] array = new int [100];は 100 個の int の配列を作成し、各要素は値 0 で初期化されます (これが のデフォルトですint)。したがって、配列を印刷すると、0 かどうかに関係なく、100 個の数値が印刷されます。

ここにはいくつかのオプションがあります。

  • を使用してList<Integer>、最初の 0 より前に入力された数字のみがリストに含まれるようにします。
  • ループで印刷し、最初の 0 または配列の最後で中断します。
  • 必要に応じて、たとえば平均などを計算するために、入力された数値の数を数えたい場合があります。これは、配列内の最初の n 要素を反復処理するために使用できます。

そうは言っても、より柔軟になるので、リストを使用することをお勧めします。

于 2013-10-21T12:35:13.463 に答える