ソースコード上のa,b,c,d,eのなかから最大数と最小数を見つけることができましたが、どうしたら最小と最大を足すことができるのでしょうか?よかったら教えていただけたらありがたいです
ソースコード↓
import java.util.Scanner;

class No6{
public static void main(String []args){
int num1,num2,num3,product;
System.out.println("Enter 3 integer");
Scanner in = new Scanner(System.in);
num1=in.nextInt();
num2=in.nextInt();
num3=in.nextInt();

product=num1*num2*num3;

// quotient=/;

System.out.println("Product of 3 number is:"+product);

System.out.println("Enter another 2 integer:");
int num4,num5,sum,quotient,product2;

num4=in.nextInt();
num5=in.nextInt();
sum=num4+num5;
quotient=num4/num5;
product2=num4*num5;

System.out.println("Sum of 2 number is:"+sum);
System.out.println("product of 2 number is:"+product2);
System.out.println("quotient of 2 number is:"+quotient);
System.out.println("");
System.out.println("Enter onother 5 integer:");

int a,b,c,d,e;
a=in.nextInt();
b=in.nextInt();
c=in.nextInt();
d=in.nextInt();
e=in.nextInt();

if ( a > b && a > c && a > e && a > d ){
System.out.println("First number is largest.");
}

else if ( b > a && b > c && b>d && b>e ){
System.out.println("Second number is largest.");
}
else if ( c > a && c > b && c>d && c>e ){
System.out.println("Third number is largest.");
}
else if (d>a && d>b && d>c && d>e){
System.out.println("Four number is largest.");
}
else if (e>a && e>b && e>c && e>d){
System.out.println("Fifth number is largest.");
}

else {
System.out.println("Entered numbers are not distinct.");
}
System.out.println("");
if ( a <b && a<c&&a<d && a<d ){
System.out.println("First number is smallest.");
}

else if ( b<a &&b<c && b<d && b<e ){
System.out.println("Second number is Smallest.");
}
else if ( c<a && c<b &&c<e && c<d ){
System.out.println("Third number is Small.");
}
else if ( d<a&&d<b &&d<c && d<e){
System.out.println("Four number is Small.");
}
else if (e<a &&e<b && e<c &&e<d){
System.out.println("Fifth number is Small.");
}

else {
System.out.println("Entered numbers are not distinct.");
}


}
}

このQ&Aに関連する最新のQ&A

A 回答 (3件)

最大最小を求める部分は



int min=a;
int max=a;

if (b < min) min=b;
if(b > max) max=b;

if (c < min) min=c;
if(c > max) max=c;

if (d < min) min=d;
if(d > max) max=d;

がシンプルでしょう。
    • good
    • 0

No1の方のアドバイスに従うと、以下のようになります。


int min,max; //・・・追加
if ( a > b && a > c && a > e && a > d ){
System.out.println("First number is largest.");
max = a; //・・・追加
}

else if ( b > a && b > c && b>d && b>e ){
System.out.println("Second number is largest.");
max = b; //・・・追加
}
else if ( c > a && c > b && c>d && c>e ){
System.out.println("Third number is largest.");
max = c; //・・・追加
}
else if (d>a && d>b && d>c && d>e){
System.out.println("Four number is largest.");
max = d; //・・・追加
}
else if (e>a && e>b && e>c && e>d){
System.out.println("Fifth number is largest.");
/max = e; //・・・追加
}
else {
System.out.println("Entered numbers are not distinct.");
max = a;// ・・・追加(とりあえずa)
}

if ( a <b && a<c&&a<d && a<d ){
System.out.println("First number is smallest.");
min = a; //・・・追加
}

else if ( b<a &&b<c && b<d && b<e ){
System.out.println("Second number is Smallest.");
min = b; //・・・追加
}
else if ( c<a && c<b &&c<e && c<d ){
System.out.println("Third number is Small.");
min = c; //・・・追加
}
else if ( d<a&&d<b &&d<c && d<e){
System.out.println("Four number is Small.");
min = d; //・・・追加
}
else if (e<a &&e<b && e<c &&e<d){
System.out.println("Fifth number is Small.");
min = e; //・・・追加
}
else {
System.out.println("Entered numbers are not distinct.");
min = a;// ・・・追加(とりあえずa)
}

min+max・・・これが求める結果
    • good
    • 0

最大値と最小値を覚えておけばいい.

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QSystem.err. printlnとSystem.out.printlnはどう違うんでしょうか?

 初心者なので今までSystem.out.println文しか見たことがなかったのですが、テキストで急にIOExceptionのcatch文の中にSystem.err. println文が出てきました。
 errをoutに書き換えてもエクリプスではチェックされなかったのですが、どういう違いがあるのでしょうか?

Aベストアンサー

出力先が「標準出力」か「標準エラー出力」かの違いです。

Windows環境ですと、
標準出力はコンソール(コマンドプロンプト、もしくはDOS窓のこと)に出力されます。
標準エラー出力も同じくコンソールに出ます。

ただし、リダイレクト機能を使ったときに違いが表れます。
リダイレクトとは、
>program > a.txt
のように、標準出力をするプログラムの出力を、
テキストファイルに書き出すことです。
Javaでも、コンソールへのテキスト出力をするプログラムだったら、
>java nantoka > a.txt
で、a.txtにテキストが書き込まれると思います。
試してみてください。

それで、「標準エラー出力」の方は、
リダイレクトをしてもリダイレクトされず、
コンソールにテキストが書き出されます。
標準エラー出力は、通常、エラーが起こったときの
表示に使うもので、
これまでリダイレクトされてしまうと、
ユーザーがエラーを検知できなくなるからです。

ためしに
System.out.println("ABCD");
System.err.println("いろはに");
System.out.println("EFG");
System.err.println("ほへと");
と出力するtestプログラムを作って、

>java test

>java test > a.txt
として、動作の違いをたしかめてみてください。

(付記:どうしてもエラー出力をリダイレクトしたい場合、
>のかわりに2>を使うことによって可能です。
Linux系ではシェルによって違いがあります)

出力先が「標準出力」か「標準エラー出力」かの違いです。

Windows環境ですと、
標準出力はコンソール(コマンドプロンプト、もしくはDOS窓のこと)に出力されます。
標準エラー出力も同じくコンソールに出ます。

ただし、リダイレクト機能を使ったときに違いが表れます。
リダイレクトとは、
>program > a.txt
のように、標準出力をするプログラムの出力を、
テキストファイルに書き出すことです。
Javaでも、コンソールへのテキスト出力をするプログラムだったら、
>java nantoka > a.txt
で、a.tx...続きを読む

QSystem.out.printlnの出力先

System.out.printlnはデフォルトでコンソール出力になっていますが、ファイルなどへ出力先を変更することはできますか?

Aベストアンサー

System.outは「標準」出力を示すオブジェクトです。
デフォルトではコンソールになっています。
そこで、この「標準」を変更するために
System#setOut(PrintStream out)
が用意されています。

PrintStream ps=new PrintStream("hoge.txt");
System.setOut(ps);
System.out.println("Hello");
ps.close();

などとすればファイルに出力されます。

Aベストアンサー

LN=LINE

lineの略ではないでしょうか
begin a new line (行を改める)で
改行ではないかと

QSystem.out.println(new 文)て?

javaを勉強しています。カレンダーを作ろうと思い、以下のURLのカレンダーのコードを勉強していたのですが、タイトルのSystem.out.println(new文)の意味が分かりません。
下記のコードで言うと、;のつく文では一番下の文です。
よろしくお願いします。

http://www7a.biglobe.ne.jp/~java-master/samples/datetime/MonthlyCalendar.html

Aベストアンサー

>System.out.println(new文)の意味が分かりません。
System.out.println( (new MonthlyCalendar(currentYear, month)).toString() );
という意味。マニュアルくらい読もうぜ。

Qclass Test_A {  main(){}}の実行順序は?

public class Test_A {
public static void main(){

int a = 0;
int b = 1;

}
}
例えば上のようなサンプルで何故 main()がクラスTest_A の中に挟まっているのでしょうか?実行順序としては main()が終了したら、クラスTest_A の方はどうなるのでしょうか? main()からプログラムが始まるのは分かるのですが、その後の動作が分かりません。よろしくお願いします。 

Aベストアンサー

>main()がクラスTest_A の中に挟まっているのでしょうか

Javaは、全てのプロパティ、メソッドはどこかのクラスに属していないといけないからです。
mainメソッドであっても例外ではありません。

>main()からプログラムが始まるのは分かるのですが、その後の動作が分かりません。

これを考える上で最も重要なのはmainメソッドがstaticであることです。
staticなメソッドは、そのクラスのインスタンスを作らなくても、
つまり、new Test_A();としなくても実行することが可能です。
プログラム実行時には、Test_Aクラスのインスタンスは生成されません。
質問のコードでは変数a,bに値が代入され、それで終わりです。

Javaでは、(正確にはJavaVMは)実行するclassファイルにある、
String[]引数を持ったvoid mainメソッドを実行する仕様になっています。
しかし、mainメソッドを実行するときには何のインスタンスも生成されていないので、
何かのインスタンスのメソッドを実行することはできません。
なので、staticなメソッドでないとJavaVMが実行できないのです。
さらに、JavaVMからアクセス可能なスコープを与える必要があるので、
publicである必要もあるのです。

あとは、そのmainメソッドに指定されたコードを実行し、mainメソッドの最後まで処理が進んだら
そこでJavaVMが終了し、プログラムも終了します。

※細かい話ですが、main()からプログラムは始まりません。
正確に言うと、引数なしのmain()メソッドは他のメソッドと何ら代わりがありません。
プログラムを始めるには、
アクセススコープがpublicで、staticな戻り値のなく、引数にString配列を取るmainメソッド
であることが必要です。つまり、
public static void main(String[] args)
とするのが通常です。
試しに質問のコードをjavaコマンドで実行すると、NoClassDefFoundErrorが出るはずです。

>main()がクラスTest_A の中に挟まっているのでしょうか

Javaは、全てのプロパティ、メソッドはどこかのクラスに属していないといけないからです。
mainメソッドであっても例外ではありません。

>main()からプログラムが始まるのは分かるのですが、その後の動作が分かりません。

これを考える上で最も重要なのはmainメソッドがstaticであることです。
staticなメソッドは、そのクラスのインスタンスを作らなくても、
つまり、new Test_A();としなくても実行することが可能です。
プログラム実行時...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報