ERLEDIGT
JA
JA
ANTWORTEN
10
10
ZUGRIFFE
1565
1565
EMPFEHLEN
-
Hallo zusammen!
Ich brauche erneut eure Hilfe
Ich muss ein C-Programm schreiben, das ganze Zahlen einliest und ausgibt, ob gleich viele positive und negative Zahlen eingeben wurden bzw. welches Vorzeichen überwiegt. Das Einlesen soll enden, wenn die Zahl 0 eingegeben wird. Der Programmlauf sollte in etwa so aussehen:
Zahl eingeben (0 für Ende): 6
Zahl eingeben (0 für Ende): 8
Zahl eingeben (0 für Ende): -4
Zahl eingeben (0 für Ende): 0
Die Anzahl positiver Zahlen überwiegt.
Ich habe mir schon ein paar Gedanken gemacht, bekomme es aber nicht in ein Programm gepackt.
Das Programm muss solange Zahlen einlesen, bis die 0 eingetippt wird. Ist die eingegebene Zahl echt größer als 0, dann ist es eine positive Zahl und andernfalls eine negative. Ich habe mir gedacht, dass man zwei Variablen mit positiv und negative benennen könnte. Diese setzt man gleich null und erhöhte sie jeweils um 1 wenn es sich um eine positive oder negative Zahl handelt, die eingetippt wird. Zum Schluss könnte man die beiden Variablen miteinander vergleichen. Wenn positiv größer ist als negativ, dann die Ausgabe "Die Anzahl positiver Zahlen überwiegt." usw.
Ich hoffe ihr wisst was ich meine
Ich bin dankbar für alles was mir hilft diese Programm auf die Beine zu stellen.Geändert von jenny1106 (06.03.10 um 20:03 Uhr)
-
Wo liegt das Problem?
Du hast das Programm ja schon durchgeplant
Zwei int pos und neg, noch eine für das Einlesen (ich nenns einfach i),
und dann eine Schleife a la
do{...}while(i!=0);
Drinnen liest du i ein, und if(i<0) dann neg++ sonst pos++
Und am Schluss musst du nur noch ausgeben, ob pos oder neg größer ist.
-
Hi!
Ich kann mich sheel nur anschließen, Dein Programm ist ja quasi schon fertig.
Was meinst Du mit "nicht in ein Programm gepackt"?
Die scanf Funktion aus <stdio.h> kennst Du doch sicher schon..
Gruß
Enum
-
Theoretisch weiß ich wie es laufen muss aber irgendwie bekomme ich die einzelnen Teile nicht zusammen.
Ich versuch es mal weiter.
-
Zeig doch mal her was Du hast, dann kann man Dir auf die Sprünge helfen.

Nur das Programm komplett für Dich schreiben wird hier keiner, zumal Dir das auch nicht wirklich was bringt.
-
So, das habe ich bislang zustande gebracht.

#include <stdio.h>
int main (void)
{
int zahl;
int positiv;
int negativ;
positiv=0;
negativ=0;
do
{
printf("Zahl eingeben (0 fuer Ende): ");
scanf("%d", &zahl);
if (zahl>0)
positiv==positiv++;
else
negativ==negativ++;
} while (zahl != 0);
if (positiv>negativ)
printf("Die Anzahl positiver Zahlen überwiegt.");
else if (positiv<negativ)
printf("Die Anzahl negativer Zahlen überwiegt.");
else
printf("Die Anzahl positiver und negativer Zahlen ist gleich.");
return 0;
}
Ich erwarte auch garnicht, dass mir jemand das komplette Programm schreibt. Es war mir schon ein Hilfe, den Tipp mit der do-while Schleife zu bekommen.
Also mein Programm lässt sich fehlerfrei kompellieren. Es kommt nur leider nicht das richtige raus, wenn ich das Programm ausführe.
Bei den Eingaben 6, 8, -4 und schließlich der 0 kommt raus, dass die Anzahl positiver und negativer Zahlen gleich ist.
Wo steckt wohl der Fehler?
-
Geändert von Enumerator (06.03.10 um 20:46 Uhr)
-
Man sollte auf die Warnungen auch achten:
positiv==positiv++
sollte wennschon heißen
positiv=++positiv
Mit einem
=, sonst ist es nur ein Vergleich ohne if
Und warum nicht einfach das?
positiv++;
Für negativ zwei Zeilen darunter gilt dasselbe
Und nochwas: Das
if(i>0)...else...
Würde 0 auch als negativ werten
@Enumerator: Bist du dir sicher, das die Sache mit == funktioniert?
Edit2: Hab zu wenig nachgedacht
Erhöht wirds schon, aber der Vergleich ist trotzdem sinnlosGeändert von sheel (06.03.10 um 20:48 Uhr)
-
Ich habe den Fehler selbst schon gefunden.
Ich muss in der do-Schleife
else if (zahl<0)
negativ==negativ++;
schreiben. Sonst zählt das Programm die 0 mit zu den negativen Zahlen.
-
Ich danke euch beiden für die super Hinweise.
-
@sheel:
Ja, ich bin sicher. Allerdings wäre Folgendes noch besser:Code :1 2
if(0 >= scanf("%d", &zahl) || 0 == zahl) break;
Ähnliche Themen
-
VBA Code / negative Zahlen rot!
Von fonds im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 03.09.08, 14:35 -
(int) vs. is_numeric() - nur positive Zahlen
Von Descartes im Forum PHPAntworten: 9Letzter Beitrag: 07.12.06, 01:59 -
auf negative Zahlen prüfen
Von aTa im Forum Javascript & AjaxAntworten: 6Letzter Beitrag: 23.10.06, 15:50 -
Exceltabelle negative Zahlen
Von M155P3RF3K7 im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 17.05.06, 07:59 -
negative Zahlen
Von bizza im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 23.02.05, 17:23





Zitieren


Login






