suche Loesung fuer Schleife
-
int i; i = strcmp(name, woche[1]); if (i == 0) { printf("Der %i Tag in der Woche ist %s\n", 1, woche[1]); } else { i = strcmp(name, woche[2]); if (i == 0) { printf("Der %i Tag in der Woche ist %s\n", 2, woche[2]); } else { i = strcmp(name, woche[3]); if (i == 0) { printf("Der %i Tag in der Woche ist %s\n", 3, woche[3]); } else { i = strcmp(name, woche[4]); if (i == 0) { printf("Der %i Tag in der Woche ist %s\n", 4, woche[4]); } else { i = strcmp(name, woche[5]); if (i == 0) { printf("Der %i Tag in der Woche ist %s\n", 5, woche[5]); } else { i = strcmp(name, woche[6]); if (i == 0) { printf("Der %i Tag in der Woche ist %s\n", 6, woche[6]); } else { i = strcmp(name, woche[7]); if (i == 0) { printf("Der %i Tag in der Woche ist %s\n", 7, woche[7]); } else { printf("Der %i Tag in der Wochexxxx ist %s\n", 0, woche[0]); } } } } } } }
wie kann ich als Schleife schreiben?
-
Indem du die Laufvariable der Schleife als Index für das Array woche benutzt.
(Aber das ist C und kein C++)
-
Laufvariable mit if!
Beispiel ?
Ich komme wirklich nicht drauf
-
Stichwort for-schleife. Rest sollte dir Google liefern.
-
m180 schrieb:
Laufvariable mit if!
Die if-Anweisung ist keine Schleife!
for(int i=1;i<=7;i++) printf("Der %d Tag in der Woche ist %s\n", i, woche[i]);
-
aber ich muss doch "if"
char woche[8][20] = {"Fehler", "Montag", usw...
wegen "strcmp(name, woche[x])"
{
printf("%i----- %s",x ,woche[x])}
Lösung bitte
-
Dann schreib halt die if anweißung in die for-Schleife.
PS: du scheinst mir sehr überfordert mit den Anfängen in C++ zu sein. Welche Informationsquelle nutzt du denn?
-
m180 schrieb:
aber ich muss doch "if"
Ja klar brauchst du das.
m180 schrieb:
char woche[8][20] = {"Fehler", "Montag", usw...
{
printf("%i----- %s",x ,woche[x])}
Dann wäre die Laufvariable der Schleife halt x (und nicht i)
m180 schrieb:
Lösung bitte
Nö.
Wir machen keine Hausaufgaben.
-
int x; for(x=0; x<8; x++) if (strcmp(name, woche[x]) != 0) { puts("Fehler"); } else { printf("Der %i Tag in der Woche ist %s\n", x, woche[x]); }
Fehler
Der 1 Tag in der Woche ist Montag
Fehler
Fehler
Fehler
Fehler
usw..ich will nur das "Der 1 Tag in der Woche ist Montag" haben
ich kriege nicht hin
-
int x; for(x=0; x<8; x++) if (strcmp(name, woche[x]) != 0) { // puts("Fehler"); } else { printf("Der %i Tag in der Woche ist %s\n", x, woche[x]); }
-
Kennst du
break
?Wenn nicht, dann merk dir in einer zweiten Variablen den Index.
int x, tag = 0; for(x=0; x<8; x++) if (strcmp(name, woche[x]) != 0) { // puts("Fehler"); } else { printf("Der %i Tag in der Woche ist %s\n", x, woche[x]); tag = x; } printf("Der %i Tag in der Woche ist %s\n", tag , woche[tag]);
-
int x, tag = 0; for (x = 0; x<8; x++) if (strcmp(name, woche[x]) != 0) { // puts("Fehler"); } else { //printf("Der %i Tag in der Woche ist %s\n", x, woche[x]); tag = x; } printf("Der %i Tag in der Woche ist %s\n", tag, woche[tag]);
danke DirkB. So will ich es haben
-
gibts noch anderen Varianten?
bzw. wie schreibt man richtig.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum C (alle ISO-Standards) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
m180 schrieb:
gibts noch anderen Varianten?
bzw. wie schreibt man richtig.
Mit
break
Du musst noch aufpassen, was passiert, wenn der Tag nicht gefunden wurde (welchen Wert hat x)
-
ok, ich probiere aus mit "break"
hab jetzt so umgeschrieben
int x, tag = 0; for (x = 0; x<8; x++) if (strcmp(name, woche[x]) == 0) { tag = x; } printf("Der %i Tag in der Woche ist %s\n", tag, woche[tag]);
-
Header.cpp
#include<stdio.h> #include<stdlib.h> #include<string.h> #include"Header.h" char woche[8][20] = { "Fehler", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag" }; void PrintTagString(char name[]) { int x, tag = 0; for (x = 0; x<8; x++) if (strcmp(name, woche[x]) == 0) { tag = x; } printf("Der %i Tag in der Woche ist %s\n", tag, woche[tag]); } void PrintTagZahl(char *a) { int x; x = atoi(a); if ((x > 7) || (x < 0)) { printf("Der %i Tag in der Woche ist Fehler\n", x); } else { printf("Der %i Tag in der Woche ist %s\n", x, woche[x]); } }
Quelle.cpp
#include<stdio.h> #include<stdlib.h> #include<string.h> #include"Header.h" void main(int argc, char *argv[]) { int x; if (argc == 2) { x = atoi(argv[1]); if (x == 0) { PrintTagString(argv[1]); } else { PrintTagZahl(argv[1]); } } else { puts("Parameter-Fehler"); } }
Header.h
void PrintTagZahl(char *a); void PrintTagString(char name[]);
-
PrintTagZahl sollte doch auch als Parameter eine Ganzzahl bekommen und keinen String.