Kontrollieren
-
08mmarte schrieb:
So hab mich jetzt registriert....
08mmarte alias mαster od desαster
Sehr gut!
Die "Aufgabe" hast du dir also selbst gestellt, um die Basics zu lernen? Hmm, ich würde es eher so sehen, dass char-Arrays und strstr da abgebracht wären und mit std::string und find weitergemacht werden sollte, aber na ja...
Du kannst ja mal alle Methoden ausprobieren...
-
Werde ich machen sobald ich mich genügend auskenne
-
Hallo,
_matze schrieb:
Hmm, ich würde es eher so sehen, dass char-Arrays und strstr da abgebracht wären und mit std::string und find weitergemacht werden sollte, aber na ja..
Aber doch nicht, wenn er C lernen will, wir sind schliesslich im ANSI-C-Forum
MfG,
Probe-Nutzer
-
08mmarte schrieb:
Werde ich machen sobald ich mich genügend auskenne
Ok, viel Erfolg! Und immer schön am Ball bleiben!
-
Wenn wir schon dabei sind...
Ich habe hier ein kleineres Notenprogramm zuschreiben versucht...
komme leider mit dem Gruppendurchschnitt nicht so zurecht wie ich gedacht habe...#include "stdafx.h" #include "stdlib.h" #include "string.h" #include <ctype.h> int _tmain(int argc, _TCHAR* argv[]) { int i, j, l = 1, k = 1; double Noten [4][4]; printf ("\nBitte Noten eingeben: "); for (j = 0; j < 4; j++) { printf ("\nGruppe %d\n",l); for (i = 0; i < 4; i++) { scanf ("%d", &Noten[i][j]); } l++; } printf ("\Statistik:\n"); for (j = 0; j < 4; j++) { printf ("\nGruppe %d:\n",k); printf ("\nKleinster Wert : "); printf ("\nDurchschnitts Wert: %i", (Noten[j-3][1] + Noten[j-2][2] + Noten[j-1][3] + Noten[j][4])/4); printf ("\nGr\x94sster Wert : "); printf ("\n"); k++; } return 0; }
Ich schaffe es nicht, dass es mir den richtigen Durchschnitt anzeigt..
mfg 08mmarte
-
Probe-Nutzer schrieb:
Hallo,
_matze schrieb:
Hmm, ich würde es eher so sehen, dass char-Arrays und strstr da abgebracht wären und mit std::string und find weitergemacht werden sollte, aber na ja..
Aber doch nicht, wenn er C lernen will, wir sind schliesslich im ANSI-C-Forum
MfG,
Probe-Nutzer
Upps! Hast ja Recht...
-
Ok, da ist ein ganzer Haufen von Fehlern drin! Ein paar Tipps:
- Du legst ein double Array an (Noten), willst dann aber per scanf int Variablen ("%d") einlesen.
- Das erste Element eines Arrays hat den Index 0, nicht 1!
- In deiner letzten Schleife hat j im ersten Durchlauf den Wert 0. Du versuchst u.a., auf Noten[j-3][1] zuzugreifen. Wo willst du da lesen? Das ist im Speicher vor deinem Array, da darfst du nicht lesen!
- Du rückst nicht richtig ein!
Und der wichtigste Tipp: Benutze den Debugger! Nur so findest du schnell Fehler.
-
#include "stdafx.h" #include "stdlib.h" #include "string.h" #include "ctype.h" int _tmain(int argc, _TCHAR* argv[]) { int i, j, l = 1, k = 1, m; double Noten [5][4]; printf ("\nBitte Noten eingeben: "); for (j = 0; j < 4; j++) { printf ("\nGruppe %d\n",l); for (i = 0; i < 5; i++) { scanf ("%s", &Noten[i][j]); } l++; } printf ("\nStatistik:\n"); for (m = 0; m < 4; m++) { printf ("\nGruppe %d:\n",k); printf ("\nKleinster Wert : "); printf ("\nDurchschnitts Wert: %i", (Noten[1][m+1] + Noten[2][m+1] + Noten[3][m+1] + Noten[4][m+1] + Noten[5][m+1])/5); printf ("\nGr\x94sster Wert : "); printf ("\n"); k++; } return 0; }
Hab mal das probiert wil aber auch nicht funktionieren....
-
Das ist nicht dein Ernst, oder?
-
wieso??...so krasse fehler???
....sorry
Der gedankenblitz will bei mir einfach nicht kommen...
-
- Warum versuchst du jetzt, mit scanf einen String ("%s") einzulesen? Lies die Doku, dann siehst du ganz schnell, wie du floats/doubles einlesen kannst.
- Willst du wirklich den Durchschnitt von 4 Werten berechnen, indem du die Summe durch 5 teilst?
- Beim Durchschnitt: nicht [1][m+1] usw., sondern [m][0] bis [m][3].
-
_matze schrieb:
- Warum versuchst du jetzt, mit scanf einen String ("%s") einzulesen? Lies die Doku, dann siehst du ganz schnell, wie du floats/doubles einlesen kannst.
- Willst du wirklich den Durchschnitt von 4 Werten berechnen, indem du die Summe durch 5 teilst?
- Beim Durchschnitt: nicht [1][m+1] usw., sondern [m][0] bis [m][3].
- Doku werde ich sofort lesen
- Es sind fünf Werte, habe ausversehen zuwenige grnommen, nicht vier
- Habe ich schon erledigt....
mfg 08mmarte
-
Ok!
Doku zu scanf: http://msdn.microsoft.com/de-de/library/9y6s16x1(VS.80).aspx
-
hmmmm....werde irgendwie nicht wirklich schlau aus der doku...kannstu du mir helfen _matze???....
-
Das unterscheiden sich scanf und printf, aber hier:
http://msdn.microsoft.com/de-de/library/xdb9w69d.aspx
solltest du erkennen, was du statt "%d" bei scanf nehmen musst. Bei printf sieht es etwas anders aus:
http://msdn.microsoft.com/de-de/library/hf4y5e3w.aspx
MfG,
Probe-Nutzer
-
Und hast du's?
-
_matze schrieb:
Und hast du's?
Geht so, Hab noch auf Galileo Computin nagesehen und da wird mit %d eingelesen, dann stimmt es so???
weil aus [url]http://msdn.microsoft.com/de-de/library/xdb9w69d.aspx [/url] werde ich einfach nicht richtig schlau...weiss auch nicht warummfg 08mmarte
-
Aber mit %d werden Ganzzahlen (Integer) eingelesen! Du willst doch double-Werte einlesen, richtig? Was sollen das überhaupt für Noten sein? Schulnoten??
Wenn du double verwenden willst, probier's mal so:
double Noten [4][4]; scanf("%le", &Noten[i][j]);
-
_matze schrieb:
Aber mit %d werden Ganzzahlen (Integer) eingelesen! Du willst doch double-Werte einlesen, richtig? Was sollen das überhaupt für Noten sein? Schulnoten??
Wenn du double verwenden willst, probier's mal so:
double Noten [4][4]; scanf("%le", &Noten[i][j]);
Mit %e hab ich es schon probiert aber mt %le nicht mal schaun...
-
Du hast auch die Indizes vertauscht:
//falsch! scanf("%le", &Noten[i][j]); //richtig: scanf("%le", &Noten[j][i]);