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

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

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

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

Q&A

解決済

1回答

3314閲覧

複数の整数から最大値と最小値、平均を表示させる

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

0クリップ

投稿2020/06/28 10:39

編集2020/06/28 11:39

前提・実現したいこと

キーボードから0~100までの整数をいくつか入力し、
-1を入力すると処理を終了し、最大値と最小値、平均を表示させたいです。
なお101以上が入力された場合は、入力は100以下ですと表示させ、やり直させたいです。
ソースコードは分かる範囲でしか書けていません…

(例)
整数を入力してください。
101
入力は100以下です
整数を入力してください。
12
整数を入力してください。
13
整数を入力してください。
-1
入力された整数の最大は13
入力された整数の最小は12
入力された整数の平均は12.5

該当のソースコード

Java

1import java.util.Scanner; 2 3public class Number { 4 public static void main (String[] args) { 5 Scanner sc = new Scanner (System.in); 6 while(){ 7 System.out.println("整数を入力してください"); 8 int inputnumber = sc.nextInt(); 9 if (inputnumber == -1) { 10 break; 11 }else if (inputnumber > 100){ 12 System.out.println("入力は100以下です"); 13 System.out.println("整数を入力してください"); 14 }else { 15 16 } 17 } 18 System.out.println("入力された整数の最大は"); 19 System.out.println("入力された整数の最小は"); 20 System.out.println("入力された整数の平均は"); 21 } 22} 23

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

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

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

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

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

dodox86

2020/06/28 10:48

レベル的に、先のこのご質問が解決してからの話ですね。ひとつひとつ片付けましょう。 [整数を入力して、1からその入力した数字までの間の偶数と奇数を表示させたいです。] https://teratail.com/questions/273536
guest

回答1

0

ベストアンサー

ほかの質問も見たので、おそらく学校の課題かなにかかと思います。
細分化して、1度考えてみてはいかがでしょうか?
答えを書くのもあれなので、下記コードのような感じで1度考えてみてください。

public class Number { public static void main (String[] args) { Scanner sc = new Scanner (System.in); // 使用する変数 int total = 0; int count = 0; int maxNum = 0; int minNum = 0; while(){ System.out.println("整数を入力してください"); int inputnumber = sc.nextInt(); if (inputnumber == -1) { break; }else if (inputnumber > 100){ System.out.println("入力は100以下です"); System.out.println("整数を入力してください"); }else { // totalに数値を合算してみる // countを1増やしてみる // maxNum(最大値)よりも入力された値のほうが大きかったらmaxNumの値を更新してみる // ... } } System.out.println("入力された整数の最大は"); System.out.println("入力された整数の最小は"); System.out.println("入力された整数の平均は"); } }

投稿2020/06/28 10:52

SasakiSyouta

総合スコア24

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

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

退会済みユーザー

退会済みユーザー

2020/06/28 12:42 編集

import java.util.Scanner; public class Number { public static void main (String[] args) { Scanner sc = new Scanner (System.in); int total = 0; int count = 0; int maxNum = 0; int minNum = 0; while(){ System.out.println("整数を入力してください"); int inputnumber = sc.nextInt(); if (inputnumber == -1) { break; }else if (inputnumber > 100){ System.out.println("入力は100以下です"); System.out.println("整数を入力してください"); }else { for(int i= 0; i <= inputnumber; i++) { total++; } count++; if(maxNum <= inputnumber) { maxNum = inputnumber; }else if (minNum >= inputnumber) { minNum = inputnumber; } } } System.out.println("入力された整数の最大は" + maxNum); System.out.println("入力された整数の最小は" + minNum); System.out.println("入力された整数の平均は"); } } こんな感じですかね
SasakiSyouta

2020/06/28 16:47

ですです! 平均はTotal/countで求めることができるのでそこをプラスするのと もし余力があればtotalは、total += inputnumberで書くとForを使用しなくても大丈夫です! ループもしなくなるので処理速度が速かったり、余計な構文を書かないので見やすかったりします。
momon-ga

2020/06/29 00:09

minNumの初期値は0でなく、100にしないと、あとelseif使っているので、1回入力で終了した場合、minNumが更新されないです
退会済みユーザー

退会済みユーザー

2020/06/29 01:00

for(int i= 0; i <= inputnumber; i++) { total++; } は、i = 1にするか、<=を<に変えないと1回多くループします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問