Eingabe < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | 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",¬e);
| 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
|
|
|
|
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")
|
|
|
|