Java - 最高,最低和最低

时间:2010-05-17 10:27:39

标签: java arrays int

是的,那么为什么Java会出现这个错误:

线程“main”中的异常java.lang.Error:未解决的编译问题:  类型不匹配:无法从double转换为int

at rainfall.main(rainfall.java:38)

由此:

public class rainfall {

 /**
  * @param args
  */
 public static void main(String[] args) 
 {
 int[]  numgroup;
 numgroup = new int [12];
 ConsoleReader console = new ConsoleReader();
 int highest;
 int lowest;
 int index;
 int tempVal;
 int minMonth;
    int minIndex;
 int maxMonth;
 int maxIndex;


 System.out.println("Welcome to Rainfall");
 // Input (index now 0-based)
 for(index = 0; index < 12; index = index + 1)
 {       
     System.out.println("Please enter the rainfall for month " + index + 1);
     tempVal = console.readInt();
     while (tempVal>100 || tempVal<0)
     {
         System.out.println("The rating must be within 0...100. Try again");
         tempVal = console.readInt();
     }
     numgroup[index] = tempVal;
 }           

 lowest = numgroup[0];
 highest = numgroup[0];
 int total = 0.0;
 // Loop over data (using 1 loop)
 for(index = 0; index < 12; index = index + 1)
 {       
     int curr = numgroup[index];
     if (curr < lowest) {
         lowest = curr;
         minIndex = index;
     }
     if (curr > highest) {
         highest = curr;
         maxIndex = index;
     }
      total += curr;
 }
 float avg = (float)total / numgroup.length;

 System.out.println("The average monthly rainfall was " + avg);
 // +1 to go from 0-based index to 1-based month
 System.out.println("The lowest monthly rainfall was month " + minIndex + 1);
 System.out.println("The highest monthly rainfall was month " + maxIndex + 1);

 System.out.println("Thank you for using Rainfall");

 }


 private static ConsoleReader ConsoleReader() {

  return null;
 }

}

2 个答案:

答案 0 :(得分:4)

我猜罪魁祸首是这一行:

int total = 0.0;

应该是

int total = 0;

代替。

答案 1 :(得分:1)

问题出在这一行:

int total = 0.0; 

需要将总数更改为float类型