www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "C/C++" - Eingabe
Eingabe < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Eingabe: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:52 So 10.07.2011
Autor: David90

Aufgabe
Hi leute, also ich hab ein programm geschrieben das 10 zahlen einliest und in ein feld schreibt. dann bildet es aus den eingegeben zahlen die summe und den durchschnitt. das funnktioniert auch alles.
mein problem liegt bei dem menue das ich angelegt habe. immer wenn ich das prog starte und eine zahl eingelesen werden soll, damit das prog weiß welcher menuepunkt ausgeführt werden soll, will es 2 werte haben, ansonsten wird der entsprechende menuepunkt nicht gestartet. also sprich wenn ich den punkt 1 starten will muss ich erst ne 1 dann enter dann wieder ne 1 und wieder enter eingeben, ansonsten wird der punkt nicht ausgeführt.

Hier ist mein Prog, hoffe einer hat ne antwort darauf:(

1:
2: #include <stdio.h>
3: #define dim 2
4: int main()
5: {
6: float feld[dim], note, summe, durchschnitt;
7: int i,auswahl;
8: summe=0;
9: while(auswahl!=2)
10: {
11: printf("Menue:\n1\tNoten eingeben\n2\tProgramm beenden\n");
12: auswahl=0;
13: scanf("%d\n",&auswahl);
14: switch (auswahl)
15: {
16: case 1:
17: printf("Bitte geben Sie 10 Schulnoten als Kommazahlen ein\n");
18: for(i=0;i<=dim-1;i++)
19: {
20: scanf("%f",&note);
21: feld[i]=note;
22: summe=summe+feld[i];
23: }
24:
25: durchschnitt=summe/dim;
26: printf("Die Summe der Noten ist %f und der Durchschnitt ist %f\n",summe, durchschnitt);
27: break;
28: case 2:
29: printf("Bye\n");
30: break;
31: default:
32: printf("Was kannst du eigentlich?\n");
33: }
34: }
35: return 0;
36: }


danke schon mal gruß david

        
Bezug
Eingabe: Antwort
Status: (Antwort) fertig Status 
Datum: 17:13 So 10.07.2011
Autor: Event_Horizon

Hallo!

Du schreibst scanf("%d\n"). Wenn du das ENTER nach der Zahl eingibst, wird dieses nicht an das scanf weitergereicht, sondern vom System verschluckt (Es dient ja nur dazu, das Ende der Eingabe zu markieren)
Dein scanf erwartet aber die Übergabe einer Zahl, sowie die Eingabe eines weiteren Zeichens. Dieses Zeichen darf aber alles mögliche sein, versuch doch mal sowas wie 123A[ENTER].

Die Lösung ist also: scanf("%d")





Bezug
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]