2016-12-06 2 views
-3

Ich habe an diesem Programm gearbeitet und bin derzeit fest. Die HW-Eingabeaufforderung soll einen Benutzer auffordern, Zahlen einzugeben, sie als ein Array zu speichern, die Anzahl der ungeraden Zahlen zu finden und die Prozentwerte dann dem Benutzer anzuzeigen.Getting Odd Zahlen von Array

Derzeit versuche ich zu einem Teil des Codes zu schreiben, der den Prozentsatz der ungeraden Zahlen im Array findet, aber die Rückkehr wird nicht angezeigt, und ich kann es einfach nicht herausfinden. Irgendwelche Ideen? Vielen Dank!

import java.util.*; // import java course for Scanner class 
public class Integers { 
    public static void main(String[] args) { 
     Scanner console = new Scanner(System.in); 
     System.out.println("Please input a series of numbers"); 
     int inputs = Integer.parseInt(console.next()); 
     int[] arraysize = new int[inputs]; 
     Oddvalues(arraysize); 
    } 

    public static int Oddvalues (int[] size) { 
     int countOdd = 0; 
     for (int i = 1; i < size.length; i++) { 
      if(size[i] % 2 != 0) { 
       i++; 
      } 
     } 
     return countOdd;  
    } 

} 
+1

hilft Sie hinzufügen, keine Daten auf das Array – Jobin

+2

Arrays an der 'beginnen 0 'nicht' 1 '. Sie erhöhen "i" anstelle von "countOdd". –

+0

Ich nehme HW = HomeWork an? Frage für dich. Welcher Wert wird von der Oddvalues-Funktion zurückgegeben? – zipzit

Antwort

0

In der Funktion Oddvalues ​​fördern Sie i anstelle von countOdd. Und die Schleife sollte von 0 nicht 1 beginnen.

1

Betrachten Sie den folgenden Code, der in IntelliJ lokal zu funktionieren scheint. Mein Ansatz besteht darin, eine einzelne Zeile vom Scanner als Zeichenfolge einzulesen und diese Eingabe dann durch Whitespace in Komponentennummern aufzuteilen. Dadurch wird das Problem vermieden, dass Sie versuchten, direkt von der Konsole aus ein Array mit ganzen Zahlen zu erstellen.

Dann iterieren Sie einfach über jede numerische Zeichenfolge mit Integer.parseInt() und überprüfen, ob es ungerade ist.

public static void main(String[] args) { 
    Scanner console = new Scanner(System.in); 
    System.out.println("Please input a series of numbers"); 
    String nextLine = console.nextLine(); 
    String[] nums = nextLine.split(" "); 
    int oddCount = 0; 
    for (String num : nums) { 
     if (Integer.parseInt(num) % 2 == 1) { 
      ++oddCount; 
     } 
    } 
    double oddPercent = 100.0*oddCount/nums.length; 
    System.out.println("Total count of numbers: " + nums.length + ", percentage odd: " + oddPercent); 
} 
+2

Gibt es einen Grund, warum getesteter funktionsfähiger Code heruntergeregelt werden sollte? –

+1

Warum nicht ihre ganze Hausaufgabe für sie erledigen, oder? Und, was machen sie eigentlich, wenn sie ihre Hausaufgaben machen? – zipzit

+1

Mit Ihrer Stimmenzahl erwarten wir sicherlich bessere Antworten von Ihnen ... – zipzit

0

dieses Versuchen

import java.util.*; 
import java.lang.*; 
import java.io.*; 
public class OddVals{ 
public static void main(String[] args) throws java.lang.Exception { 
    Scanner sc = new Scanner(System.in); 
    int[] array = new int[sc.nextInt()];  // Get the value of each element in the array 
    System.out.println("Please input a series of numbers"); 
    for(int i = 0; i < array.length; i++) 
     array[i] = sc.nextInt(); 
    System.out.println("Number of Odds:" +Oddvalues(array)); 
    printOdd(array); 
    } 
public static int Oddvalues (int[] size) { 
    int countOdd = 0; 
    for (int i=0; i < size.length; i++){ 
     if(size[i]%2 != 0) 
     ++countOdd;    
    } 
    return countOdd;  
    } 
public static void printOdd(int[] arr) 
{ 
    for(int i=0;i<arr.length;++i) 
    { 
     if(arr[i]%2==1) 
      System.out.print(arr[i]+" "); 
    } 
} 
0
import java.util.*; // import java course for Scanner class 
public class Integers { 


    public static void main(String[] args) { 
     List<Integer> intList = new ArrayList<Integer>(); 


     Scanner console = new Scanner(System.in); 
     System.out.println("Please input a series of numbers"); 
     while (console.hasNext()) 
     { 

      String str = console.next(); 
      try 
      { 
       if(str.equals("quit")){ 
        break; 
       } 
       int inputs = Integer.parseInt(str); 

       System.out.println("the integer values are" +inputs); 
       intList.add(inputs); 
      } 
      catch (java.util.InputMismatchException|NumberFormatException e) 
      { 
       console.nextLine(); 
      } 


     } 
     console.close(); 
     double d = Oddvalues(intList); 
     System.out.println("the percent is" +d); 
    } 

    public static double Oddvalues (List<Integer> list) { 
     int count = 0; 
     for(Integer i : list) 
     { 

      if(!(i%2==0)) 
      { 
       count++; 
      } 
     } 

     double percentage = (Double.valueOf(String.valueOf(count))/ Double.valueOf(String.valueOf(list.size())))*100; 

     return percentage; 

    } 
} 

Wenn diese