Anfänger: Frage zur Berechnung des Durchschnitts
-
Hallo zusammen,
kann mir Jemand sagen warum folgender Code nicht funktioniert?
Programmablauf:
Bitte geben Sie die Anzahl der gespielten Löcher ein:
18
Bitte geben Sie die benötigten Schläge ein:
40
Sie brauchen durchschnittlich 2.22 Schläge pro Loch.Code:
------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>int main()
{char holes1[2];
int holes2;char strokes1[2];
int strokes2;float average;
printf("Wie viele Loecher hast Du gespielt?\n");
scanf("%i", &holes1);
holes2 = atoi(holes1);printf("Wie viele Schlaege wurden benoetigt?\n");
scanf("%i", &strokes1);
strokes2 = atoi(strokes1);average = strokes2/holes2;
printf("Du hast durchschnittlich %.2f Schlaege pro Loch benoetigt.\n", average);
return(0);
}
--------------------------------------------------------------------------------
Vielen Dank vorab für die Hilfe!
Gruß,
Marc
[code][cpp]
-
1. %i (und auch %d) bei scanf liest schon ein
int
ein. Da brauchst du kein char-Array.
2. Den Adress-Operator (&) auf ein Array loszulassen ist selten sinnvoll.
3. Integerberechnungen ergeben Integerergebnisse.int holes; int strokes; double average; scanf("%d", &holes); scanf("%d", &strokes); average = (double)strokes2/holes2;
Du mußt noch überprüfen ob
scanf()
überhaupt Werte eingelesen hat.
Das geht mit dem Rückgabewert vonscanf()
-
Klappt jetzt.
Ist noch alles sehr neu für mich....
-
Onlinetourist schrieb:
Klappt jetzt.
Ist noch alles sehr neu für mich....
Dann nimm dir ein Buch. Aus Papier.
Zumindest die Punkte 1 und 2 wären dann nicht aufgetreten.Bücher kann man auch ausleihen.
-
Das Design des Programmes ist mangelhaft, du wechselst zwischen int und float/double hin und her.
Für die Aufgabenstellung reichen 3 Variablen vom Typ double aus und dann klappt es auch:
-
Das war mein erstes Programm das ich je geschrieben habe...
Bücher habe ich genug nur ein generelles Programmierverständnis
fehlt mir noch.... Bin aber dran.