Veröffentlicht 8. Februar 200916 j #include<ctype.h> #include<stdio.h> char eingabefeld[30]; double zahl; double puffer = 0; do { scanf("%s", &eingabefeld[]); if (isdigit(eingabefeld[]) == true); { zahl = (double)eingabefeld[]; // Typ Umwandlung in double } else switch (eingabefeld[]) { // Test case'+': puffer += zahl; break; } printf("%lf", puffer); // Test Ausgabe } while (getchar() != 'b'); } Wenn ich das Programm übersetzen möchte, meldet CodeBlocks 3 Fehler, die ich nicht ganz verstehe. :confused: tzi\Desktop\test.c|8|error: expected unqualified-id before "do"| tzi\Desktop\test.c|38|error: expected unqualified-id before "while"| tzi\Desktop\test.c|40|error: expected declaration before '}' token| ||=== Build finished: 3 errors, 0 warnings ===| Aufgabe des Programmes sollte sein: Eingegebene Zeichen und Zahlen aussortieren (in Opperatoren und Zahlen) und dann auswerten. Mehr nicht! Ich brauch dieses System um einen guten Taschenrechner für die Konsole zu schreiben.
8. Februar 200916 j #include<ctype.h> #include<stdio.h> [B]int main (void) {[/B] char eingabefeld[30]; double zahl; double puffer = 0; do { scanf("%s", &eingabefeld[]); if (isdigit(eingabefeld[]) == true); { zahl = (double)eingabefeld[]; // Typ Umwandlung in double } else switch (eingabefeld[]) { // Test case'+': puffer += zahl; break; } printf("%lf", puffer); // Test Ausgabe } while (getchar() != 'b'); [B]}[/B] CodeBlocks meldet jetzt mehr Fehler! Desktop\test.c||In function `int main()':| tzi\Desktop\test.c|14|error: expected primary-expression before ']' token| tzi\Desktop\test.c|16|error: expected primary-expression before ']' token| tzi\Desktop\test.c|19|error: expected primary-expression before "double"| tzi\Desktop\test.c|19|error: expected `)' before "double"| tzi\Desktop\test.c|23|error: expected primary-expression before "else"| tzi\Desktop\test.c|23|error: expected `;' before "else"| ||=== Build finished: 6 errors, 0 warnings ===|
8. Februar 200916 j Zeile 14: Die eckigen Klammern müssen weg. Überhaupt darfst du eckige Klammern ohne "Inhalt" nur bei der Deklaration eines Arrays benutzen. Zeile 16: isdigit kann nur einzelne Zeichen prüfen, kein ganzes Array auf einmal. Und das Semikolon am Ende muss weg. Zeile 19: Diese "Typumwandlung" ist Unsinn. Schau dir mal die Funktion atof an. Zeile 26: switch funktioniert nicht mit Zeichenketten.
8. Februar 200916 j Zeile 16: du kannst in C nicht auf == true vergleichen (außer du hast true irrgendwo definiert) da in C keine boolischen Variablen vorgesehn sind. d.h. du müsstest if (isdigit(eingabefeld) != 0 ) oder if (isdigit(eingabefeld)) schreiben Zeile 23: Fehlen bei deinem else die geschweiften Klammern
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.