コンパイル後のエラー。

解決済みの質問

コンパイル後のエラー。

こんにちは、質問があります。

下のプログラムを組みました。
コンパイルには成功しましたが、実行することができません。

import java.io.*;

public class Gyouretu {

public static void main(String[] args) {

BufferedReader reader = new BufferedReader(
new InputStreamReader(System.in), 1);
try{
System.out.println("行列数を入力");

String line = reader.readLine();
int n = Integer.parseInt(line);
int a[][] = new int[n][n];
int b[][] = new int[n][n];
int c[][] = new int[n][n];
int i,j,k;
for ( i = 0; i < n; i++){
for ( j = 0; j < n; j++){
c[i][j]=0;
for ( k = 0; k < n; k++){
c[i][j] += a[i][k] * b[k][j];

System.out.print(c);
System.out.print(i);
System.out.print(j);
}
}
}
}catch (IOException e){
System.out.println("end");
}
}
}


行列の計算をするプログラムなのですが、コンパイル後に行列数(何行何列か?)を入力するとこんなエラーが出ます。


「'2' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」

なぜなのか、どうしてもわかりません。
よろしくお願いします。

投稿日時 - 2003-02-12 10:54:46

連想キーワード:

QNo.470730

困ってます

質問者が選んだベストアンサー

C言語とか、やったことありますか?

Javaの配列は、ポインタ配列なんで、配列の中身を見るためには、各要素を指定しないと、ただのポインタが表示されるだけになります。

2次元配列だったら、こんな感じにしないと、要素の値を全部、表示できません。

int[][] hairetu = new int[10][10];
for(int i=0; i<hairetu.length; i++) {
 for(int j=0; j<hairetu[0].length; j++) {
  System.println("(" + i + "," + j + ")=" + hairetu[i][j]);
 }
}

1次元配列だったら、java.util.ArraysのasListメソッドを使って、
配列をListオブジェクトに変換して、それをtoStringメソッドを使って、
文字列表現にする方法もあります。

まぁ、色々工夫して、頑張って下さい。

投稿日時 - 2003-02-13 11:37:04

お礼

ありがとうございます。いろいろなアドバイスや書籍を読んでみたところ、配列の仕組みがわかってきました。これからもがんばってみます!

投稿日時 - 2003-02-16 20:20:27

ANo.3

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(2件中 1~2件目)

System.out.print(c);

となっていますが、cは二次元配列の変数名ですよね?
って言うことは、配列の要素を指定しなければいけないんじゃないでしょうか?

//を使ってコメントアウトすることによって、どんな値が出力されるか見比べてみると良いかもしれませんよ。

投稿日時 - 2003-02-12 21:39:06

補足

配列の要素を指定する、ということはどういうことなのでしょうか?おっしゃる通りcは配列の変数名です。
このプログラムを実行すると、こんな出力がされてしまいます。

行列数を入力
2
[[I@1f3367500[[I@1f3367500[[I@1f3367501[[I@1f3367501[[I@1f3367510[[I@1f3367510[[I@1f3367511[[I@1f3367511

なぜこんな出力になるのか、どうもわかりません。
何かありましたらご指摘ください。

投稿日時 - 2003-02-12 23:35:16

ANo.1

こんにちは。

コンパイルした後に実行していますか?

javac Gryouretu.java
でコンパイルした後、
java Gryouretu
で実行してみてください。

投稿日時 - 2003-02-12 13:50:49

お礼

ありがとうございます。解決しました。非常に初歩的なミスをしていたんですね。もっと練習が必要なようです。

投稿日時 - 2003-02-12 23:35:03

あわせてチェックしたい
  • try catch 文について ...
  • Try-catch文(FileInputStream) ...
  • \'xjis.nls\' ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら