いくつか数字を入力して読み込ませたものを、入力した時と逆の順番で表示させるにはどうすればよいのでしょうか??
たとえば、
2
4
6
8
と入力した場合、
8
6
4
2
と表示されるということです。
// 数列を逆順に書く
class Reverse2 {
public static void main(String [] args){
int data[] = new int[10];
int i,x,kosuu;
i=0;
System.out.println("0以上の数を高々10個打ち込め。終りは -1で表わす。");
System.out.print("> ");
x=IO.in.readInt();
while(x >= 0){
if(i>=10) System.out.println("10個を越えたので無視する。");
else { data[i]=x; i++; }
System.out.print("> ");
x=IO.in.readInt();
}
kosuu=i;
//これで読み込み完了
【ここに配列の中身を逆転するプログラムを書く】
//逆順に書き出し
System.out.println("数列を逆順に書くと以下の通り。");
for(i=kosuu-1; i>=0 ;i--){System.out.println(data[i]);}
}
}
上の【】のところになにを書けばよいか教えて下さいッ(汗)
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
2468を逆順に表示するには
data[0]とdata[3]の要素(中身)を交換
data[1]とdata[2]の要素を交換
できればいいのですが、ここで問題があります。
例えば、data[0]とdata[3]の要素を交換する際ただたんに
data[0]=data[3];
data[3]=data[0];
としても
data[0]=data[3]の時点でdata[0]の要素が上書きされてしまい
dataの要素は8468となってしまいます。
これを身近な例に例えて解決したいと思います。
例えば、A君とB君がPS、PS2の同じゲームで遊んでいたとして
お互いのデータを交換したいということになりました。
しかし、A君のデータをB君のメモリーカードに移そうとすると
上書きされて、両方ともA君のデータになってしまいます。
ここでこの問題を解決するため3つ目の空のメモリーカードを用意します。そうすると、
1)A君のデータを空のカードにコピー
2)B君のデータをA君のカードにコピー
3)空のカードのデータをB君のカードにコピー
この手順でみごと両者のデータを交換できます。
これを理解したうえで
A君のデータをdata[0]、B君のデータをdata[3]
int tmp;と変数を宣言し、
空のカードをtmpと置き換えてみるとわかりやすいかと思います。
交換する要素の指定は
for文の中身を(int i=0;i<data.length/2;i++)
(data.lengthは配列dataの長さ(要素数=4)を意味します)とし、
交換するものはdata[i]とdata[(data.length-1)-i]になります
(data.length-1)とするのは、要素数では1から数えてますが
プログラムでは0から数えるため、その誤差を調整するため
1を引いています。
長くなってしまい申し訳ないです。
わからないところがあれば返信ください。
No.1
- 回答日時:
表示する処理が既にカウントダウンループの逆順になっているので、逆転するプログラムは必要ないと思う。
入門プログラマが先輩から課題を与えられたような気配もするが、
仮にそうだとすると、この内容で他人に質問する時点でプログラマのセンスはないと断定できる。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Ruby vscode 文字化け 1 2022/05/21 19:17
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
java キーボード入力された値の...
-
テキストボックスに入力された...
-
Java 配列<選挙>
-
総称型ArrayList<E>への参照...
-
繰り返しによる星印の出力
-
Java 入力した整数値の合計を、...
-
3桁のカウンター表示
-
3つの値の中間値を求める
-
javaで素数判断プログラム作成...
-
キーボードから10人分の点数を...
-
〔java〕 計算結果に0をつける...
-
countに実行した回数をいれたい...
-
javaで九九の表を作りたい
-
エラー(互換性の無い型)
-
Ctrl+Zが入力されると終了する...
-
論理演算子”||”またはの入力方法
-
(急いでいます)Javaで3回間違...
-
Java、2の0乗~10乗の表示
-
数値⇒漢数字変換 java
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
java キーボード入力された値の...
-
Java、2の0乗~10乗の表示
-
コマンドライン引数の例外処理...
-
数値⇒漢数字変換 java
-
Ctrl+Zが入力されると終了する...
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
countに実行した回数をいれたい...
-
論理演算子”||”またはの入力方法
-
7つ数字を表示したら改行すると...
-
テキストボックスに入力された...
-
配列を逆順させて表示させる方...
-
繰り返しによる星印の出力
-
Java 入力した整数値の合計を、...
-
キーボードから10人分の点数を...
-
JAVAのfor文で困っています。
-
階乗の式
-
要素数が10の配列で、乱数0~9...
-
Java キーボードから負の数が入...
-
Randomメソッドの確率設定
おすすめ情報