suche Loesung fuer Schleife



  • 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.


Anmelden zum Antworten