2010-05-17 22 views
-2

droit, alors pourquoi Java viennent avec cette erreur:Java - Plus haut, le plus bas et moyen

Exception dans le thread "principal" java.lang.Error: problème de compilation non résolues: Type mismatch: ne peut pas convertir de la double int

à rainfall.main (rainfall.java:38)

de ceci:

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; 
} 

} 
+0

La prochaine fois que le format de votre code s'il vous plaît (en utilisant le bouton '101010' dessus de l'éditeur). En outre, il est utile si vous marquez explicitement la ligne de code où l'erreur se produit ... –

Répondre

4

Je suppose que le coupable est cette ligne:

int total = 0.0; 

devrait être

int total = 0; 

à la place.

+0

Cela génère alors une erreur ici: \t System.out.println ("Les précipitations mensuelles les plus faibles étaient le mois" + minIndex + 1); \t System.out.println ("La pluviométrie mensuelle la plus élevée était le mois" + maxIndex + 1); – Emily

+0

Si c'est une erreur de compilation, essayez d'utiliser des parenthèses, comme 'System.out.println (" La pluie mensuelle la plus basse était le mois "+ (minIndex + 1)); Veuillez être plus précis sur les erreurs en général. –

+0

Nope, vient toujours avec cette erreur: Exception dans le thread « principaux » java.lang.Error: problèmes de compilation: non résolues \t La variable locale minindex peut ne pas avoir été initialisé \t La variable locale maxindex peut ne pas avoir été initialisé – Emily

1

problème est avec cette ligne ici:

int total = 0.0; 

Nécessité de changer total à flotteur de type

+1

Je pense que vous voulez dire "double". Je ne sais pas pourquoi vous voudriez utiliser 'float', mais si vous le faisiez, vous auriez besoin de changer 0.0' '0.0f' pour que cela fonctionne. – Syntactic

+0

Juste pour être cohérent avec le reste du code dans l'exemple –

Questions connexes