🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

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

Q&A

1回答

1141閲覧

昇順並び替えのコードについて

k-1015.

総合スコア4

Java

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

0グッド

0クリップ

投稿2021/03/30 23:51

編集2021/03/31 01:23

java

1package myjava; 2 3import java.io.BufferedReader; 4import java.io.IOException; 5import java.io.InputStreamReader; 6 7public class Question7 { 8 public static void main(String args[]) throws IOException { 9 System.out.println("整数を昇順で並べ替えます。"); 10 System.out.println("5個の整数を入力してください。"); 11 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 12 int j, k, l; 13 int num[] = new int[5]; 14 //文字入力5回受け付ける 15 for (int i = 0; i < num.length; i++) { 16 System.out.print((i + 1) + "個目の整数 : "); 17 String str = br.readLine(); 18 //int型に変更 19 int tmp = Integer.parseInt(str); 20 num[i] = tmp; 21 } 22 //数字を並び替える 23 for (k = 0; k < num.length - 1; k++) { 24 for (j = k + 1; j < num.length; j++){//k+1を0にしたいです 25 if (num[k] > num[j]) { 26 l = num[k]; 27 num[k] = num[j]; 28 num[j] = l; 29 } 30 } 31 } 32 //昇順出力 33 System.out.println("昇順並べ替え"); 34 for (j = 0; j < num.length; j++) { 35 System.out.print(num[j] + "\n"); 36 } 37 //最大値、最小値並び替え 38 int max = 0; 39 int min = num[0]; 40 for (int i = 0; i < num.length; i++) { 41 if (max < num[i]) { 42 max = num[i]; 43 } 44 if (min > num[i]) { 45 min = num[i]; 46 } 47 } 48 //最大値、最小値出力 49 System.out.println("最大値は" + max + "で、最小値は" + min + "です。"); 50 } 51} 52```入力した数字を昇順に並び替えるコードを書いています。数字を並び替えているfor文のところのk+1を0にして 53同じ結果を出したいです。教えていただけると幸いです。お願いします。

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

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

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

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

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

dodox86

2021/03/31 00:03

意図を掴みかねるご質問です。当方で実際の動きを確認した訳ではありませんが、現状のコードで昇順にソートされて、機能は満たされているのではないのですか? > for (j = k + 1; j < num.length; j++) {  //k+1を0にしたいです を for (j = 0; j < num.length; j++) { にして動くようにしたいと言うことでしょうか。そうした場合にどうコードを書けば同じ結果になるのか、と言う課題ですか?
k-1015.

2021/03/31 00:09

言葉足らずですみません。その通りです。
dodox86

2021/03/31 00:19

もとのコードはご自身で書かれたものですか? そうではない場合、理解されていますか? そこが出発点です。 厳しいことを書くと、「同じ結果を出したい。教えてください。」だと単なる丸投げです。
K_3578

2021/03/31 01:05

ご提示のコードだと、 for (j = k + 1; j < num.length; j++) {  //k+1を0にしたいです で、{の後全角スペース入ってます。
dodox86

2021/03/31 01:19

K_3578さんの[2021/03/31 10:05]のコメントより: > で、{の後全角スペース入ってます。 ああ、もしコンパイル(ができない)だけの問題であるならば、質問の性質が変わりますね。 確かに、UTF-8でもシフトJISでもコンパイルエラーになります。
K_3578

2021/03/31 02:24 編集

多分コンパイルエラーだけではないと思いますが・・・。 質問者さんが結局どこで詰まったのか書いてないのでとりあえずこのままだと コンパイルエラー出るよねぐらいしか言えないです
dodox86

2021/03/31 02:48

あくまで想像ですが、これが課題だとしたら「kを0から始めることによって、比較対象を常に先頭から何度も見る。そうすることで元のコード、考え方よりいかにややこしくなるか、実装して体験し、元のコードの意味を再確認せよ。」のような意図だと思われますが、本当にそうなら、ちょっと意地悪かもしれませんね。
K_3578

2021/03/31 03:18

@dodox86さん 多分クラス名からして何かしらの教本、参考書の課題かなーとは思います。 >「kを0から始めることによって、比較対象を常に先頭から何度も見る。そうすることで元のコード、考え方よりいかにややこしくなるか、実装して体験し、元のコードの意味を再確認せよ。」 これは確かに意地悪。
guest

回答1

0

0にしたいなら0にすればいいのでは

Java

1for (j = 0; j < num.length; j++) {  //k+1を0にしたいです

投稿2021/03/31 00:00

Luice

総合スコア771

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問