![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
問題
キーボードから10回連続して入力し、そのデータを入力された順番とは逆順に一行で出力するプログラムを作成する
実行結果
↓
数値1>10
数値2>11
数値3>13
途中略
数値9>25
数値10>27
入力:10 11 13 15 17 19 21 23 25 27
逆順出力:27 25 23 21 19 17 15 13 11 10
____________________________________________________________________________________________________
自分がやったプログラミングですが、実行結果がうまくいきません。エラーは発生しないですけど、最後の入力と逆出力の出し方が実行結果のようにうまく表示させることができません。どうしたらいいでしょうか??
class Sample4 {
public static void main(String[] args) throws IOException
{
System.out.println("");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int[] test = new int[10];
for (int i = 0; i < 10; i++){
System.out.print("数値"+i+">");
String str = br.readLine();
int num =Integer.parseInt(str);
test[i]=num;
}
for (int i = 0; i < 10/ 2; i++) {
int t = test[i];
test[i] = test[10 - i - 1];
test[10 - i - 1] = t;
}
System.out.println("要素の並びを逆転しました.");
for (int i = 0; i < 10; i++){
System.out.print("入力:"+test[i]);
System.out.print("逆順出力:"+test[i]);
}
}
}
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
全角の空白を削除して、日本語の文字列を ASCII だけにしてみました。
内容は同じです。今度はどうでしょうか。
import java.io.*;
class QA8293175 {
private static final int n = 10;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] test = new int[n];
for (int i = 0; i < n; i++) {
System.out.print("no. " + i + "> ");
test[i] = Integer.parseInt(br.readLine());
}
System.out.print("in:");
for (int i = 0; i < n; i++) { System.out.print(" " + test[i]); }
System.out.println();
for (int i = 0; i < n / 2; i++) {
int t = test[i]; test[i] = test[n - i - 1]; test[n - i - 1] = t;
}
System.out.println("reversed.");
System.out.print("out:");
for (int i = 0; i < n; i++) { System.out.print(" " + test[i]); }
System.out.println();
}
}
この回答への補足
うまくいきましたが細かいことを言うと、数値1からですので、i=0からにしてしまいますと、数値が0からのスタートとなってしまいます。その場合はどうしたらいいですか??
補足日時:2013/10/06 19:09No.5
- 回答日時:
アルゴリズムは合ってると思います。
出力の順番が違ってるだけです。定数の 10 だけは、散らばっていて気持ち悪いので、n としてくくりだしました。
各行の全角のスペースを削除して、試してみてください。
import java.io.*;
class QA8293175 {
private static final int n = 10;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] test = new int[n];
for (int i = 0; i < n; i++) {
System.out.print("数値" + i + "> ");
test[i] = Integer.parseInt(br.readLine());
}
System.out.print("入力:");
for (int i = 0; i < n; i++) { System.out.print(" " + test[i]); }
System.out.println();
for (int i = 0; i < n / 2; i++) {
int t = test[i]; test[i] = test[n - i - 1]; test[n - i - 1] = t;
}
System.out.println("要素の並びを逆転しました.");
System.out.print("出力:");
for (int i = 0; i < n; i++) { System.out.print(" " + test[i]); }
System.out.println();
}
}
No.4
- 回答日時:
Java 勉強中です。
QA8293175.java:
import java.util.*;
public class QA8293175 {
private static final Integer n = 10;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
ArrayList<Integer> result = new ArrayList<Integer>();
ArrayList<Integer> reverse = new ArrayList<Integer>();
Integer i = 0;
while (result.size() < n) {
try {
System.out.print("num " + (i + 1) + " ? ");
result.add(new Integer(in.next())); i++;
} catch (Exception e) { continue; }
}
System.out.println(result);
for (Integer j = 0; j < n ; j++) { reverse.add(result.get(n - j - 1)); }
System.out.println(reverse);
}
}
No.3
- 回答日時:
> これをどこに書くんですか??
これを書くのに適した場所です。
これが何をしているかを考えれば簡単です。
どうしてもわからなければ、いろんなところに実際に置いてコンパイル→実行してください
コンパイルエラーになったり、出力結果が期待通りでなければ、間違いです。
期待通りの結果になったら、そこです。
どうしてそうなるか、よく考えてみましょう
No.1
- 回答日時:
いいところまでは、いってるんだけどなぁ
まずは、「実行結果のようにうまく表示させることができません」等と中途半端なことを言っていないで
具体的に、なにがどう「うまく表示されない」のか、現象を正確に把握しましょう。
for (int i = 0; i < 10; i++){
System.out.print("入力:"+test[i]);
System.out.print("逆順出力:"+test[i]);
}
これは
System.out.print("入力:"+test[i]);
System.out.print("逆順出力:"+test[i]);
の固まりを繰り返します。
この時点で、既に順番が入れかわっているのですから
System.out.print("入力:"+test[0]);
としたところで、「順番変更後のtest[0]」が出力されてしまいます。
また、「入力:~」と「逆順出力:~」を交互に実行します。
目的のことをするには
入力だけの出力だけ全部
順番入れ替え
逆順出力だけ全部
とする必要があります。
別解: 「test[]の内容を並び変えろ」とは書いてありません。
ということは、表示順だけ変える、というのも有りでは。
また、10個と決まっているので
System.out.print("入力:"+test[0]+" "+test[1+" "+test[2+" "+test[3]+" "+test[4]+" "+test[5]+" "+test[6]+" "+test[7]+" "+test[8]+" "+test[9]+" ");
とも書けます。
この回答への補足
これをどこに書くんですか??
入力:"+test[0]+" "+test[1+" "+test[2+" "+test[3]+" "+test[4]+" "+test[5]+" "+test[6]+" "+test[7]+" "+test[8]+" "+test[9]+" ");
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java 配列<選挙> 4 2023/07/31 15:07
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.err. printlnとSystem.o...
-
System.out.printlnの出力先
-
Javaで改行などが出来ないのです。
-
flush()とclose()について
-
JAVAのServletで、画像表示につ...
-
1~100までの数字を表示し、か...
-
Log4jで機能毎に別ファイルへ出...
-
Eclipseのコンソールを常に表示...
-
JavaScriptの変数をjavaのメソ...
-
Log4Jではログを改行できない?
-
Java 九九の表について
-
テキストエリアで改行する
-
Java の Sound API を使用した...
-
system.out.printが出力されない
-
OutputStreamの内容を確認する...
-
一定のスペースを空けて端を揃...
-
1~100までの数字を表示したい
-
eclipse if を判定しないのですが
-
javaにおけるCSV出力時の文字コ...
-
ArrayList内HashMapの取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.err. printlnとSystem.o...
-
Javaで改行などが出来ないのです。
-
flush()とclose()について
-
Log4jで機能毎に別ファイルへ出...
-
System.out.printlnの出力先
-
1~100までの数字を表示し、か...
-
Eclipseのコンソールを常に表示...
-
system.out.printが出力されない
-
JAVAのServletで、画像表示につ...
-
1~100までの数字を表示したい
-
テキストエリアで改行する
-
switch分が機能しません。
-
Tomcatが無応答となる現象が起...
-
一定のスペースを空けて端を揃...
-
数字文字列をパック10進数に変...
-
JavaScriptの変数をjavaのメソ...
-
バイトスワップ
-
tomcatのstdout.logを停止したい。
-
Java 九九の表について
-
ダブルクォーテーション(””)...
おすすめ情報