Algorithmus schreiben Hilfestellung?
kann mit jemand weiterhelfen?
Schreibe einen Algorithmus der kontrolliert ob mehr positive Zahlen oder mehr negative Zahlen im Array vorhanden sind?
Programmiere in C ..
6 Antworten
For Schleife(Array Länge(Länge gemeint als die Menge an besetzten Stellen))
{
if(Arrrayzahl <= 0)
{
irgend eine zählvariable ++
}
else
{
die selbe zählvariable --
}
}
if(zählvarianle < 0)
{
mehr positive
}
else if(zählvariable > 0)
{
mehr negative
}
else
{
gleich viele
}
.
.
Das Programm zählt die null auch als positive.
Falls du aber willst, dass das Programm die null nicht als positive zählt, machst du anstatt größergleich größer, und anstatt dem else ein else if mit der Bedingung kleiner.
Dieses Programm setzt vorraus, dass das Array sortiert ist(alle ziffern der Reihe nach von Position null+ stehen). Wenn er das nicht ist, musst du bei der For schleife den ganzen Block in eine If Bedingung verpacken, mit der Bedingung, dass es keine 'null' Stelle ist.
*Ich bearbeite meine Antwort, die einrenkungen kann ich nicht machen.
habe morgen eine lnformatik schularbeit 🙈
Wenn du ein bisschen optimieren möchtest, kannst du dir folgende Dinge überlegen:
- Wie kann man das bereits beschriebene Verfahren mit nur einer Variable realisieren?
- Ist es immer nötig, das gesamte Array zu durchsuchen? (Ist nur in Sonderfällen schneller, manchmal auch langsamer)
Mach zwei Int-Varaiblen. Eine, die die negativen Zahlen zählt, eine die die Positiven zählt.
Dann mach For-schleife, von i=0 bis Arraylänge-1.
Überprüfe in der Schleife, ob das Array-Element an der Stelle i kleiner als 0 ist.
Falls ja: Erhöhe den Zähler für Positive Zahlen. Falls nein: Erhöhe den Zähler für negative Zahlen.
Am Schluss dann einfach die beiden Zähler vergleichen.
Bitteschön :)
Es ginge auch noch kürzer, mit einem einzigen Zähler, denn man dann jenachdem ab das jeweilige Element Positiv oder Negativ ist um 1 erniedrigt oder erhöht. Und am Schluss schaut man dann, ob dieser Zähler positiv oder negativ ist.
Aber ich denke obige Variante ist etwas verständlicher.
Mit "For-schleife, von i=0 bis Arraylänge-1" meinte ich übrigens einfach die hier:
for(int i = 0; i < deineArrayLaenge; i++) {
...
}
bzw.
for(int i = 0; i <= deineArrayLaenge-1; i++) {
...
}
Hast du vermutlich eh gecheckt, aber besser ich merke es noch an ^^
Einfacher wäre das Problem mit einem Zähler gelöst. Du addierst bei positiv und subtrahierst bei negativ, ist aber eine Kleinigkeit.
Jo, aber fand diese Methode verständlicher / einfacher zu erklären.
Aber die Möglichkeit mit einer Variable habe ich auch noch ergänzt in meiner Antwort auf ihre Antwort.
Ave!
Generell sind die anderen Antworten vollkommen korrekt, aber nicht sonderlich performant.
Ich würde exakt eine Int erstellen, egal ob für positiv oder negativ.
Diese Variable wird in einer Schleife entsprechend der ausgewählten Variante hochgezählt und als Abschluss von der Array-Länge subtrahiert.
Ist die Zahl größer als dieses Ergebnis, gibt es folglich mehr von dieser Form.
Grüßchen :)
Naja, einfach zwei Zähler-Variablen erstellen. Danach jedes Element im Array durchgehen, wenn das Element größer 0, erhöht sich halt der eine Zähler um 1, wenn die Zahl kleiner 0, erhöht sich der andere Zähler um 1.
Mfg Jannick (L1nd)
sehr hilfreich!! Danke🤗