• 締切
  • 困ってます

九九のプログラム

  • 質問No.2286811
  • 閲覧数204
  • ありがとう数3
  • 回答数2

お礼率 93% (69/74)

public class kuku{
public static void main(String[] args){
int[][] hyou=new int[10][10];
System.out.print(" ");
int i;
int yoko;
for(i=1;i<hyou.length;i++){
yoko=(int)(Math.random()*10);
hyou[i][0]=yoko;
System.out.print(" "+hyou[i][0]);
}
System.out.println();
int j;
int tate;
for(j=1;j<hyou[0].length;j++){
tate=(int)(Math.random()*10);
masu[0][j]=tate;
System.out.println(hyou[0][j]);
}}}

これを実行すると乱数がダブって表示されてしまうのですが、ダブらないようにし、appletで実行できるようにしたいのですがどのように直したらいいのでしょうか。どなたかアドバイスください。

回答 (全2件)

  • 回答No.2

ベストアンサー率 34% (46/134)

こんばんは~!九九の計算は乱数使わないといけないでしょうか?
こんな単純なやり方はダメですかね?

public class kuku
{
public static void main(String[] args)
{
for(int i=1; i<=9; i++){
for(int j=1; j<=9; j++){
System.out.print("\t");
System.out.print(i*j);
}
System.out.println();
}
}
}
お礼コメント
ia080024

お礼率 93% (69/74)

回答ありがとうございます。
投稿日時:2006/07/21 08:13
  • 回答No.1

ベストアンサー率 30% (34/111)

乱数生成というのを勘違いされている気がします。
1~10の乱数を生成
といった際に、生成されるのは
 1~10までの数字を並び替えた結果
ではなく
 1~10の数字のどれか
です。

よって、ダブります。

自分ならば、
初めに1~10を格納した配列を用意し
最初は1~10(実際は0~9ですが)の乱数で指定された箇所の値を取得し
取得した箇所以降の数字を前に移動(上書きして詰める)
続いて1~9(1つ数字が減ったので)の乱数で指定された箇所の・・・
を実行します。

もっとよい案があると思いますが、それは他の方の回答に期待してください(自爆
お礼コメント
ia080024

お礼率 93% (69/74)

助言ありがとうございました。
投稿日時:2006/07/20 07:46
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ