Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Informatik in der Schule » Schleife in C unterbrechen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Schleife in C unterbrechen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Alogo
unregistriert
Schleife in C unterbrechen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich hoffe, ich bin hier richtig. Ich bin gerade dabei, mir die Programmiersprache C in ihren Grundzügen, mit Hilfe eines ausgeliehenen Buches selber beizubringen.

Das folgende Programm soll den Benutzer fragen, wieviele Gleitkommazahlen er addieren möchte und dann die Addition ausführen. Leider ist es mit dem Programm nciht möglich, eine Zahl einzugeben, sondern die Schleife wird erbarmungslos ausgeführt.

Hier das Stück Code, welches mit Probleme bereitet:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
//kap006/aufgabe3a.c
// Eine vom Benutzer festgelegte Anzahl an Gleitkommazahlen soll addiert werden

#include <stdio.h>

int main( void){
  int number;
  double sum, curr;
  printf("Wieviel Gleitkommazahlen möchten Sie addieren?\n");
  scanf("%d", &number);
  while(number > 0){
    printf("Sie wollen noch  %d Zahlen addieren. Wie lautet die nächste?", number);
    scanf("fl", &curr);
    sum = curr + sum;
    printf("Die aktuelle Zwischensumme lautet %fl \n.", sum);
    number--;
  }
  
  return 0;
}


Alogo
20.03.2011 10:59
MaBa
Eroberer


Dabei seit: 26.04.2010
Beiträge: 55

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo Alogo,

zunächst ein Hinweis vorweg: Initialisiere deine Variablen bevor sie verwendet werden. Hier am besten direkt bei der Deklaration. Denn "sum" wird verwendet, ohne dass bekannt ist welchen Wert die Variable haben soll.

Zu deinem Problem scanf wird nicht nur die Zahl eingelesen, die der Benutzer eingibt, sondern auch das "\n" bei Drücken der Enter-Taste zur Bestätigung der Eingabe. Eine Möglichkeit besteht darin, nach dem scanf durch
code:
1:
fflusch(stdin);

den Puffer zu leeren.

Alternativ kannst du auch prüfen, ob es sich bei dem eingelesenen Zeichen um ein newline handelt. Wenn ja, ignorierst du es - ansonsten ist es die gewünschte Nutzereingabe.


Viele Grüße,
MaBa

__________________
Dipl.-Inform. Markus Barth
Wissenschaftlicher Mitarbeiter
Studiengänge Angewandte Informatik / Medieninformatik

Fachhochschule Trier
Umwelt-Campus Birkenfeld
21.03.2011 08:50 MaBa ist offline E-Mail an MaBa senden Beiträge von MaBa suchen Nehmen Sie MaBa in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Informatik in der Schule » Schleife in C unterbrechen