2 Stimmen

Java-Code, um die Anzahl der Vorkommen eines Elements in einem Array zu zählen?

EDIT: Ich möchte hinzufügen, dass ich in einem AP-Computerkurs an der High School bin, der erst im sechsten Kapitel ist. Ich weiß nicht, was ein Heshmap ist, und ich weiß nicht, was eine Array-Liste ist. Ich muss dies zum Laufen bringen, indem ich For- und While-Schleifen sowie nur Arrays verwende. Ich weiß, dass ich es nur damit machen kann, weil es mein Lehrer getan hat.

Ich arbeite an einem Programm, das genau dies für AP Compsci tut:

"Entwerfen und implementieren Sie eine Anwendung (IntegerCount.java), die eine Reihe von Ganzzahlen (im Bereich von 0 bis 50 einschließlich) liest, die vom Benutzer eingegeben werden, und zählt, wie oft jede Ganzzahl eingegeben wird. Nachdem alle Eingaben verarbeitet wurden, geben Sie alle Werte aus, mit der Anzahl der Eingaben für jede einzelne. Tipp: Sie benötigen eine While-Schleife und verwenden Sie eine beliebige Zahl außerhalb des Bereichs als Sentinellen, um das Programm zu beenden. Design: Geben Sie Ihre Ergebnisse ordentlich aus, indem Sie Tabs verwenden."

Dies ist bisher mein Code, der die erste Hälfte der Aufgabe darstellt.

package arrays; 
import java.util.Scanner; 
import java.util.Arrays; 
public class IntegerCount { 

    public static void main(String[] args) { 

            Scanner scan = new Scanner(System.in); 
            System.out.println("Wie viele Ganzzahlen möchten Sie eingeben?"); 
            int aCount = scan.nextInt(); 
            int[] intcount; 
            intcount = new int[aCount]; 
            System.out.println("Geben Sie "+ aCount +" Ints ein"); 
            for (int min = 0; min

`

Ich verstehe jedoch nicht wirklich oder weiß nicht, wie ich den zweiten Teil der Aufgabe implementieren soll, der vorsieht, dass nichts über 50 eingegeben werden kann und dass die Anzahl der Vorkommen einer bestimmten Zahl gezählt wird. Wenn jemand diesen Code hinzufügen und erklären könnte, wie er funktioniert, wäre das großartig, danke. (Ich bin mir sicher, dass eine While-Schleife verwendet wird, ich habe noch nichts über eine Array-Liste gelernt, also implementieren Sie diese nicht, danke)

`

3voto

Hugo Sousa Punkte 1914

Nur ein kleiner Beitrag, ohne dir viel Code zu geben.

Sie sollten nach einer Zahl fragen, bis die Eingabe außerhalb des Bereichs 0-50 liegt, also würde es so etwas sein:

int userInput;

do{
   //Eingabe abfragen und Variable userInput setzen
}while(userInput<=50 && userInput>=0);

BEARBEITEN: Wenn Sie wirklich eine while-Schleife anstelle einer do-while-Schleife verwenden möchten, wie Sie in Ihrer Bearbeitung gesagt haben (es ist fast dasselbe):

int userInput = 1; // nur um sicherzustellen, dass es mindestens einmal in die Schleife eintritt

while(userInput<=50 && userInput>=0){
   //Eingabe abfragen und Variable userInput setzen
}

Für das Zählen kann ich Ihnen 2 Lösungen vorschlagen (die erste entspricht auch Ihren Bearbeitungsanforderungen):

  1. Erstellen Sie ein Array von Ganzzahlen (initialisiert mit 0) mit 51 Positionen. Jedes Mal, wenn der Benutzer eine gültige Zahl eingibt, erhöhen Sie die int-Zahl an der Position userInput - 1. Dies ist wahrscheinlich der einfachste Weg, um es in diesem einfachen Beispiel zu implementieren.
  2. Erstellen Sie eine HashMap von . Die erste Ganzzahl ist die Eingabe, die zweite ist der Zähler. Jedes Mal, wenn der Benutzer eine gültige Zahl eingibt, suchen Sie nach dieser Zahl in der HashMap. Wenn sie bereits existiert, erhöhen Sie den zweiten Wert. Wenn nicht, erstellen Sie es und setzen den Zähler auf 1.

0voto

bige Punkte 1

Nicht sicher, ob das hilft, aber mein Programm soll eine beliebige Zahl sammeln, speichern, sie addieren und dann durch die Anzahl der eingegebenen Zahlen teilen, nachdem eine spezifische Zahl "999" eingegeben wurde, um den while-Schleifenprozess zu stoppen.

Hoffentlich hilft das jemandem, aber du musst es möglicherweise nach deinen Vorstellungen anpassen, denn ich bin mir nicht sicher, wie ich genau erklären kann, wie man es direkt anwendet.

import java.util.Scanner;

public class WhileLoop
{
    public static void main(String[] args)
    {
        @SuppressWarnings("resource")
        Scanner Eingabe = new Scanner(System.in);

        double summe = 0;
        double num = 1;
        double zaehler = -1;
        double durchschnitt = 0;

        while (num != 999)
        {
            zaehler++;
            durchschnitt = (summe / zaehler);
            System.out.println("Geben Sie eine Zahl ein, 999 zum Beenden: ");
            num = Eingabe.nextInt();
            if (num != 999)
            {
                summe += num;
            }
            System.out.println("Die Summe der eingegebenen Zahlen: " + summe);
        }
        System.out.println(" Ihr Durchschnitt ist " + durchschnitt);
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X