以下はコマンドライン引数で任意の数の整数を受け取って、合計・平均・最大・最小を求めようとしたソースです。
しかし、実行したら最大値と最小値が正しく出ませんでした。
if文が間違っているのかもしれないと思ったのですが、はっきりと『ここが間違っている』という場所が分かりません。
どうかご指摘お願いします。
class Choco
{
public static void main (String[] args)
{
int i;
int sum = 0;
int max;
int min;
for ( i=0; i<args.length; i++)
sum += Integer.parseInt(args[i]);
double ave = sum/args.length;
max = args.length;
min = args.length;
if (args.length>max){
max = args.length;
}
if (args.length<min){
min = args.length;
}
System.out.println("合計は" + sum + "です。");
System.out.println("平均は" + ave + "です。");
System.out.println("最大値は" + max + "です。");
System.out.println("最小値は" + min + "です。");
}
}
No.1ベストアンサー
- 回答日時:
添削してみました。
・args.length は、引数の数ですから最大値や最小値と比べるのは意味がありません。
・int / intは結果がint になってしまうので、doubleで計算させないとdoubleに代入する意味がありません。
------------------------------------------------------------------
class Choco{
public static void main (String[] args) {
int i, v;
int sum = 0;
int max=Integer.MIN_VALUE;
int min=Integer.MAX_VALUE;
for ( i=0; i<args.length; i++){
v= Integer.parseInt(args[i]);
sum += v;
if(v>max)
max=v;
if(v<min)
min=v;
}
double ave = (double)sum/args.length;
System.out.println("合計は" + sum + "です。");
System.out.println("平均は" + ave + "です。");
System.out.println("最大値は" + max + "です。");
System.out.println("最小値は" + min + "です。");
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9 4 2022/12/19 23:27
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# leetcode 155 minstack 1 2022/05/07 16:43
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
最大値と最小値の求め方
-
実数からの小数部の取得
-
ダブルクォーテーションのrepla...
-
wsprintf関数の使い方について
-
配列にnullを代入すると、null...
-
EXCEL VBA で、0から?1から?
-
IF関数でEmpty値を設定する方法。
-
このプログラミング誰か教えて...
-
javaの再帰関数を用いるプログ...
-
パソコンキーボードで時分秒を...
-
複数のテキストボックスに同じ...
-
Javaで改行などが出来ないのです。
-
TextAreaでの文字の色
-
BOOL値を逆にしたい
-
ウィンドウなしで画像表示
-
テキストエリアで改行する
-
java
-
Enumのname()とtoString()の違...
-
System.err. printlnとSystem.o...
-
配列の要素数を超えた参照のコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
べき乗
-
実数からの小数部の取得
-
Javaで何パーセント%かを表示...
-
0dの意味を教えてください
-
最大値と最小値の求め方
-
double型変数値の整数部分のみ...
-
Javaによる利率計算の実装方法
-
doubleで入力するには?
-
doubleとintの違い
-
JAVAのプログラムで、2乗計算...
-
double型の足し算について
-
掛け算演算を使わない掛け算
-
実数 2.0 に対して int(2.0) ==...
-
Javaコンパイルエラー
-
java のfor文について質問です。
-
C# ToStringでの数字桁揃えの仕方
-
java プログラム 範囲を指定し...
-
Javaのeval関数処理
-
printfでのエラーがわからない...
-
数値積分について
おすすめ情報