数组 JOptionPane 版本

Arrays JOptionPane version

谁能帮我解决这个问题。 作业是在数组中使用 JOptionPane。用户将输入数组的长度。然后在程序结束时,它会显示最大的数字。 这是我到目前为止得到的:

import javax.swing.JOptionPane;

public class array 
{
public static void main(String[] args) 
{
String L;
int lenght;
L=JOptionPane.showInputDialog(null,"enter lenght: ");
lenght=Integer.parseInt(L);

int[]num = new int[lenght];

for(int counter = 0; counter < lenght ;counter++)
    {


    JOptionPane.showInputDialog(null,"enter #: "+(counter+0));  
int max=num[0];

         if (num[counter] > max) 
         {

            max = num[counter];
         }

    }

JOptionPane.showMessageDialog(null,"the largest number is: " + max);
}

}

然后出现这个错误: 错误:找不到符号

maxfor 循环的范围内定义。所以它在 for.

之外不可用

for 循环之外定义它,它应该可以工作:

public static void main(String[] args) {
    String L;
    int lenght;
    L = JOptionPane.showInputDialog(null, "enter lenght: ");
    lenght = Integer.parseInt(L);

    int[] num = new int[lenght];
    int max=0;
    for (int counter = 0; counter < lenght; counter++) {

        JOptionPane.showInputDialog(null, "enter #: " + (counter + 0));
        max = num[0];

        if (num[counter] > max) {

            max = num[counter];
        }

    }

    JOptionPane.showMessageDialog(null, "the largest number is: " + max);
}

更新:

您永远不会将输入值存储到 num[counter]

num[counter] = Integer.parseInt(JOptionPane.showInputDialog(null, "enter #: " + (counter + 0)));
package retedunits;

import java.util.Scanner;


public class RentedUnits {
private Integer TOTAL_NUMBER_RENT_UNITS; //Total number of rented units
private Double rentPerUnit; //Rent Per Unit
private Double maintainancePerUnit; //Average Maintainance cost per unit
private Integer currentUnitsRented; //Number of units currently occupied
private Double rentIncreaseFactor; //The level at which people leave

//PROFIT MAX
private Double maxRentForProfit;
private Integer maxUnitsForProfit;

public RentedUnits(Integer totalUnits, Double initalRentPerUnit, Double initialMaintainanceCost, Integer currentRented, Double rentIncreaseFactor){

    this.TOTAL_NUMBER_RENT_UNITS = totalUnits;
    this.rentPerUnit = initalRentPerUnit;
    this.maintainancePerUnit = initialMaintainanceCost;
    this.currentUnitsRented = currentRented;
    this.rentIncreaseFactor = rentIncreaseFactor;
}

public Double getMaxRentForProfit() {
    return maxRentForProfit;
}

public Integer getMaxUnitsForProfit() {
    return maxUnitsForProfit;
}


private void increaseRent(Double increasedRent){
    //For each  increase in rent one unit is vacant.
    if(increasedRent > this.rentIncreaseFactor) {
        //The number of units that will become vacant is one for every increase of rentIncreaseFactor
        int numberVacate = (int) (increasedRent % this.rentIncreaseFactor);
        this.currentUnitsRented -= numberVacate;
        this.rentPerUnit += increasedRent;
    }
    else {
        this.rentPerUnit += increasedRent;
    }
}

private Double calculateProfit(){

    //Calculate total rent collected from units that are rented
    Double totalRent = this.currentUnitsRented * this.rentPerUnit;

    //calculate the maintainanec of all units
    Double totalMaintainence = this.TOTAL_NUMBER_RENT_UNITS * this.maintainancePerUnit;

    return totalRent - totalMaintainence;
}

public void maximizeProfit(){
    /*Keep increasing rent, and let people leave till the total collected 
    * rent keeps increasing.
    */

    /* Assume you begin at all units occupied*/
    Double maximumProfit = 0.0;
    Double maxProfitRent = 0.0;
    Integer maxProfitUnits = 0;

    /* Keep increasing rent till all people leave while tracking max profit*/
    while(this.currentUnitsRented == 0){
        increaseRent(this.rentIncreaseFactor);
        if(this.calculateProfit() > maximumProfit){
            maximumProfit = this.calculateProfit();
            maxProfitRent = this.rentPerUnit;
            maxProfitUnits = this.currentUnitsRented;
        }
    }

    this.maxRentForProfit= maxProfitRent;
    this.maxUnitsForProfit = maxProfitUnits;
}
/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    RentedUnits rentedUnits = new RentedUnits(50, 600.0, 27.0, 50, 40.0);
    rentedUnits.maximizeProfit();
    System.out.println(rentedUnits.getMaxUnitsForProfit() + " units needs to be rented at " + rentedUnits.getMaxRentForProfit() + " rent per unit to get maximum profit.");

}

}