Hallo zusammen,
ich programmiere zur Zeit ein Programm welches die Noten abfragt und davon den Durschnitt berechnet.
Es sieht z. Z. wie folgt aus:
Jetzt habe ich folgende Probleme.
1. Da der Notenschnitt ja durchaus eine Kommazahl darstellen kann, muss ich mit float-Variablen rechnen, welche ich ja in Zeile 19 "erstelle".
Wieso kann ich nicht von Anfang an mit float-Variablen rechnen, indem ich aus Zeile 3 das int zu einem float mache?
Bekomme dort dann den Fehler: "...main.c|17|error: array subscript is not an integer|".
Somit könnte ich mir nämlich die 3 Variablen aus Zeile 4 sparen.
2.Wenn ich die notensumme (Zeile17) u. gesamtanzahl (Zeile18) in eine Formel packe, bekomme ich ein falsches Ergebnis, liegt wohl daran, das note[*] ein Integer ist und das Ergebnis evtl. eine Kommazahl.
Zudem, gibt es eine elegantere Weise die note[1] bis note[4] zu addieren? Falls ich ja jetzt noch mehr Variablen hätte, wäre die Reihe noch wesentlich länger. Gibts da eine kürzere Schreibweise mehrere Variablen zu addieren?
3. Die Notenausgabe ab Zeile 13 soll normalerwerweiße in einer Tabelle geschehen. Wie folgt:
Habe jetzt schon ewig gegoogelt, aber wie soll das gehen? Durch 2dimensionale Arrays?
ps.: Ich weiß der Code ist unsauber, möchte aber erstmal zum Ergebnis kommen, dann kann man ihn verschönern. :-)
Bin für jeden Tipp dankbar!
ich programmiere zur Zeit ein Programm welches die Noten abfragt und davon den Durschnitt berechnet.
Es sieht z. Z. wie folgt aus:
Code:
int main()
{
int note[4] = {}, i, notensumme, gesamtanzahl =0;
float zahl1, zahl2, zahl3;
//Noteneingabe
for(i=0; i<5; i++) {
printf("Geben Sie die Note %d ein: ",i+1);
scanf("%d", ¬e[i]);
note [i] = (const int) note [i];
}
//Notenausgabe
for(i=0; i<5; i++) {
printf("Note %d: %d Schueler\n", i+1, note[i]);
}
//Berechnung des Notendurchschnitts
notensumme=(note[0]+note[1]*2+note[2]*3+note[3]*4+note[4]*5);
gesamtanzahl=(note[0]+note[1]+note[2]+note[3]+note[4]);
zahl1=notensumme;zahl2=gesamtanzahl;zahl3=zahl1/zahl2;
//Ausgabe des Notendurchschnitts
printf("\nNotendurchschnitt: %.2f", zahl3);
return 0;
}
Jetzt habe ich folgende Probleme.
1. Da der Notenschnitt ja durchaus eine Kommazahl darstellen kann, muss ich mit float-Variablen rechnen, welche ich ja in Zeile 19 "erstelle".
Wieso kann ich nicht von Anfang an mit float-Variablen rechnen, indem ich aus Zeile 3 das int zu einem float mache?
Bekomme dort dann den Fehler: "...main.c|17|error: array subscript is not an integer|".
Somit könnte ich mir nämlich die 3 Variablen aus Zeile 4 sparen.
2.Wenn ich die notensumme (Zeile17) u. gesamtanzahl (Zeile18) in eine Formel packe, bekomme ich ein falsches Ergebnis, liegt wohl daran, das note[*] ein Integer ist und das Ergebnis evtl. eine Kommazahl.
Zudem, gibt es eine elegantere Weise die note[1] bis note[4] zu addieren? Falls ich ja jetzt noch mehr Variablen hätte, wäre die Reihe noch wesentlich länger. Gibts da eine kürzere Schreibweise mehrere Variablen zu addieren?
3. Die Notenausgabe ab Zeile 13 soll normalerwerweiße in einer Tabelle geschehen. Wie folgt:
Habe jetzt schon ewig gegoogelt, aber wie soll das gehen? Durch 2dimensionale Arrays?
ps.: Ich weiß der Code ist unsauber, möchte aber erstmal zum Ergebnis kommen, dann kann man ihn verschönern. :-)
Bin für jeden Tipp dankbar!