2012-01-26 10 views
0

私はJavaを学んでいます。今は配列を扱っています。私はユーザが2行3列の整数配列の値を入力するようにするエクササイズを行っています。それから私は最小値を見つけることになっています。私はif文を使ってこれを行います。問題は、コンパイラは常に最小値の数値 "0"を出力することです。私は自分のコードで何が間違っているかを知ることができません。誰でも助けてくれますか? コードは次のとおりです。これらの行で配列の中で最小のものを探す

import java.util.Scanner; 
    public class Oppgave79k 
    { 
public static void main(String[] args) 
{ 
    Scanner input = new Scanner(System.in); 
    int t[][] = new int[2][3]; 
    int smallest = t[0][0]; 

    for (int row = 0; row < t.length; row++) 
     { 
     for (int column = 0; column < t[row].length; column++) 
      { 
      System.out.println("Enter values for array: "); 
      t[row][column] = input.nextInt(); 
      if (t[row][column] < smallest) 
       { 
       smallest = t[row][column]; 
       } 
      } 
     } 
    for (int row = 0; row < t.length; row++) 
     { 
     for (int column = 0; column < t[row].length; column++) 
      { 
      System.out.printf("%d ", t[row][column]); 
      } 
     } 
    System.out.printf("Smallest element is: %d\n", smallest); 
} 

}

+0

['Arrays.sort'](http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#sort%28int []%29)を使用して、ソートされた配列の最初の要素ですか? – mre

+1

'c# 'アングルとは何ですか? – spender

+0

@mre:それはO(nlogn)ではなくO(nlogn)です。また、コピーを作成しない限り、配列を変更します。 – Brian

答えて

8

は:

int t[][] = new int[2][3]; 
int smallest = t[0][0]; 

あなたはは0としてsmallestをスタートしましたので、あなたは負の数を入力しない限り、それは決して変わることはありません。

あなたは使用することができます

int t[][] = new int[2][3]; 
int smallest = Integer.MAX_VALUE; 

は最初の数が使用されているに入ったことを確認します。

脇に、あなたの字下げのスタイルはやや独特です。どちらの

for (...) { 
    // Code 
} 

または

for (...) 
{ 
    // Code 
} 

私には罰金に見えますが、

for (...) 
    { 
    // Code 
    } 

は非常に珍しいです。

2

あなたは0

は、第1の入力値に最小の設定を検討とは異なる値を取得する必要があります入力経由で負の数値を入力した場合smallestのあなたの初期値は0です。

0

は、Javaや他のプログラミング言語

  1. を学習している場合は、先頭にある場合、これはあなたがコンピュータが
  2. を「考える」方法を理解するのに役立ちます、あなたのコードをデバッグする方法を学び、解決してみてくださいコードのいずれかの一行も書かず、問題、およびこれを使用すると、「コンピュータ」のように考えるのに役立ちます

次にあなたがsmallestのあなたの最初の割り当てが間違っていたことがわかります。

0

入力の読み込み部分を先に行い、2D配列を保存することをお勧めします。次に、最小= t [0] [0]を設定することができます。そして、それは決して破ることはありません。また、最小の要素を見つけるよりもソートアルゴリズムを実装することをお勧めします。私はそれが素晴らしい経験となることを保証することができます。 また、オープンソースのIDEであるeclipse IDEを使用してください。あなたのポイントをデバッグすることができ、コード作成の作業が簡単になります。

関連する問題