質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

1787閲覧

元の配列の値は変更せず、int型の配列xを受け取り、値を逆に入れ替えた新しい配列を作成し、その参照を返すメソッドの作成したい。

Kame04

総合スコア14

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2017/04/23 06:10

ソースを書いてみると長くなってしまったので、もっと簡潔で正しいソースはどのように記述するといいでしょうか。
見辛いソースでお手数をおかけしますが、回答をお願いいたします。

元の配列の値は変更せず、int型の配列xを受け取り、値を逆に入れ替えた新しい配列を作成し、その参
照を返すメソッドの作成したい。(動作を確認するための適切なmain()メソッドも作成し、動作を確認が必要)

java

1package program01; 2 3import java.io.BufferedReader; 4import java.io.IOException; 5import java.io.InputStreamReader; 6 7public class Program01 { 8 public static void main(String[] args) { 9 try { 10 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 11 System.out.print("配列のサイズを入力してください:"); 12 int array_num = Integer.parseInt(reader.readLine()); 13 System.out.println("値を入力してください:"); 14 System.out.print("x[" + 0 + "]" + "="); 15 int array_value = Integer.parseInt(reader.readLine()); 16 int[] x = new int[array_num]; 17 x[0] = array_value; 18 for (int i = 1; i < x.length; i++) { 19 System.out.print("x[" + i + "]" + "="); 20 int array_value2 = Integer.parseInt(reader.readLine()); 21 x[i] = array_value2; 22 } 23 int[] y = x; 24 System.out.println("リバースしてコピーしました。"); 25 reverseArrayCopy(y); 26 System.out.println("元の配列をもう一度表示します。"); 27 System.out.println("(変更されていませんね。)"); 28 for (int i = 0; i < x.length; i++) { 29 System.out.println("x[" + i + "]" + "=" + x[i]); 30 } 31 } catch (Exception e) { 32 // tryの中でエラーがあればこの中に入る 33 System.out.println("入力エラーです"); 34 } finally { 35 // エラーでも正常でも実行します 36 System.out.println("プログラム終了"); 37 38 } 39 } 40 41 public static int[] reverseArrayCopy(int[] y) { 42 for (int i = (y.length) - 1; i >= 0; i--) { 43 int j = (y.length - i) - 1; 44 System.out.println("y[" + j + "]" + "=" + y[i]); 45 } 46 return y; 47 } 48} 49

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ソースを書いてみると長くなってしまったので、もっと簡潔で正しいソース

  • ソースが長い原因はなんだろう
  • ソースが正しくない点はなんだろう

この2点について「自分で確認する」「自分で原因を考える」ことをまず行い、それに対して意見を求めるような質問にした方がよいと思います。

プログラムを書いたばかりで自分で吟味せずに単に添削を求めてみてもプログラミングの知識や力はつかないと思います。また質問者さんが何を考えたかを聞けないと「何をアドバイスすると約にたちそうか」が絞れないものです。

投稿2017/04/23 06:54

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

以下、サンプル、動作未確認。元のプログラムでやろうとしていることの推測。

java

1 public static int[] reverseArrayCopy(int[] y) { 2 for (int i = 0, rev_i = y.length - 1; i < rev_ i; i++, rev_i--) { 3 int temp = y[i]; 4 y[i] = y[rev_i]; 5 y[rev_i] = temp; 6 } 7 return y; 8 }

以下、サンプル、動作未確認、お題を読んででやろうとしていることの推測

java

1 public static int[] reverseArrayCopy(int[] y) { 2 int size = y.length; 3 int[] x = new int[size]; 4 5 for(int i = 0; i < size; i++){ 6 x[i] = y[size - 1 - i]; 7 } 8 return x; 9 }

投稿2017/04/23 06:29

HogeAnimalLover

総合スコア4830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問