2016-12-17 10 views
-4

我々はそうのような二重の配列があるとします。(Java)のアレイ内の2台の最も最大値の積を作る

double [] array=new double[5] 

ユーザーが配列に格納された値を入力します。私の仕事は、配列内の2つの最大値の積を求めることです。

どうすればよいですか?

ありがとうございました。

+0

あなたは最大値と配列の第2の最大値の積を意味しますか? –

+0

はいいいえrafiカマール –

+0

2つの最高値の製品、または2つの値を持つ最高の製品をアレイから取り出したいですか? –

答えて

1
static Scanner read = new Scanner(System.in); 

public static void main(String[] args) { 
    double[] array = new double[5]; 
    System.out.println("enter number"); 

    //for loop to fill array 
    for (int i = 0; i < array.length; i++) { 
     array[i] = read.nextDouble(); 
    } 

    double max1 = 0; 

    //for loop to find first max value 
    for (int i = 0; i < array.length; i++) { 
     if (array[i] > max1) { 
      max1 = array[i]; 
     } 
    } 
    double max2 = 0; 

    //for loop to find second max value 
    for (int i = 0; i < array.length; i++) { 
     if (array[i] > max2 && array[i] != max1) { 
      max2 = array[i]; 
     } 
    } 

    System.out.println("the product of two most maximum value is " + (max1 * max2));  // the product of two max value 
    // end main 
} 
+0

あなたはフォーマットを修正していただけますか?読むのはとても難しいです。 –

+0

@rubaあなたのプログラムは100.0を2度返します 'double [] array = {100、6、3、99、8};そしてあなたが見るでしょう:) –

+0

@Khezar Bangashこの値を100にしようとすると、 5、6、9、3とこのプログラムを返すものを確認してください! –

0
import java.util.Arrays; 
import java.util.Collections; 

class Test { 

    public static void main(String args[]) { 
     double array[] = {2, 98, 1, 5, 3, 6}; 

     for (int i = 0; i < array.length; i++) { 
      for (int j = i + 1; j < array.length; j++) { 
       if (array[j] > array[i]) { 
        double temp = array[i]; 
        array[i] = array[j]; 
        array[j] = temp; 
       } 
      } 
     } 

     double product = array[0] * array[1]; 
     System.out.println(product); 
    } 
} 

PS:私はArrays.sort()方法は、それはタイプのために働くdouble型では動作しませんことを知って来たよう

私は私の以前の回答を編集した: - intbyteを、shortcharをまたはobject[]アレイのみ。

+0

配列を降順でソートし、0番目と1番目のインデックス要素を掛けます。それはより簡単です。 – Jobin

0
import java.util.Scanner; 
public class HelloWorld{ 

    public static void main(String []args){ 
     Scanner scan = new Scanner(System.in); 
     double[] array = new double[5]; 
     for(int i = 0; i<5; i++) 
     { 
      array[i] = scan.nextDouble(); 
     } 
     double max = array[0]; 
     for(int i= 1; i<5; i++) 
     { 
      if(array[i] > max) 
      { 
       max = array[i]; 
      } 
     } 
     double prev = array[0]; 
     for(int i= 1; i<5; i++) 
     { 
      if(array[i] > prev && array[i] < max) 
      { 
       prev = array[i]; 
      } 
     } 
     System.out.println(max*prev); 
    } 
} 
関連する問題