Problem mit C programm



  • Hallo
    ich habe dieses Code geschrieben

    #include <stdio.h>
    void main (){
    	printf("Geben sie eine Zahl zwischen 1 und 7");
    	int tag;
    	scanf("%d",tag);
    	if(tag<1||tag>7){
    		printf("Falsche Eingabe");
    	}
    	else{
    		switch(tag){
    		case 1:
    			printf("Sonntag");
    			break;
    		case 2:
    					printf("Montag");
    					break;
    		case 3:
    					printf("Dienstag");
    					break;
    		case 4:
    					printf("Mittwoch");
    					break;
    		case 5:
    					printf("Donnerstag");
    					break;
    		case 6:
    					printf("Freitag");
    					break;
    		case 7:
    					printf("Samstag");
    					break;
    		default:
    			break;
    		}
    	}
    	}
    

    das Programm muss für jede Zahl den entsprechenden Tag zeigen
    aber irgendwie klappt das nicht!!! und das Programm gibt nicht aus in dem entsprechenden Platz sonder zu späz Z.b

    printf("Geben sie eine Zahl zwischen 1 und 7");
    

    wird nur am ende Ausgegeben
    Vielen Dank 🙂



  • Also poste mal bitte einen Code der auch compilierbar ist, denn mit

    void main()
    

    kommste sicherlich nicht sehr weit;-)

    Außerdem, wenn du wirklich C++ programmieren willst, dann nutze doch bitte auch die C++ Streams, statt die alten C-Funktionen wie printf.

    Lg freeG

    Dein Code müsste so aussehen:

    #include <stdio.h>
    int main ()
    {
        printf("Geben sie eine Zahl zwischen 1 und 7");
        int tag;
        scanf("%d", &tag);
        if(tag<1||tag>7)
        {
            printf("Falsche Eingabe");
        }
        else
        {
            switch(tag)
            {
            case 1:
                printf("Sonntag");
                break;
            case 2:
                        printf("Montag");
                        break;
            case 3:
                        printf("Dienstag");
                        break;
            case 4:
                        printf("Mittwoch");
                        break;
            case 5:
                        printf("Donnerstag");
                        break;
            case 6:
                        printf("Freitag");
                        break;
            case 7:
                        printf("Samstag");
                        break;
            default:
                break;
            }
        }
    }
    


  • Ich glaube eher, dass er nur im falschen Unterforum gelandet ist. 😉



  • Das kann auch sein... 😃
    Falls er allerdings doch bewusst hier ist, wäre folgender Code angesagt 😉 :

    #include <iostream>
    
    using namespace std;
    
    int main ()
    {
        cout << "Geben sie eine Zahl zwischen 1 und 7 ein: " << endl;
        int tag;
        cin >> tag;
    
        if( tag<1 || tag>7 )
        {
            cout << "Falsche Eingabe" << endl;
        }
        else
        {
            switch( tag )
            {
            case 1:
                cout << "Sonntag" << endl;
                break;
            case 2:
                    cout << "Montag" << endl;
                    break;
            case 3:
                   cout << "Dienstag" << endl;
                    break;
            case 4:
                    cout << "Mittwoch" << endl;
                    break;
            case 5:
                    cout << "Donnerstag" << endl;
                    break;
            case 6:
                    cout << "Freitag" << endl;
                    break;
            case 7:
                    cout << "Samstag" << endl;
                    break;
            default:
                break;
            }
        }
    }
    

    Lg freeG



  • In C ist dein Programm nicht übersetzbar, da die Variablen am Anfang der Funktion definiert werden müssen. Für scanf musst du die Adresse der Variablen angeben. So müsste es gehen:

    #include <stdio.h>
    int main (){
        int tag;
        printf("Geben sie eine Zahl zwischen 1 und 7");
        scanf("%d",&tag);
        if(tag<1||tag>7){
            printf("Falsche Eingabe");
        }
        else{
            switch(tag){
            case 1:
                printf("Sonntag");
                break;
            case 2:
                        printf("Montag");
                        break;
            case 3:
                        printf("Dienstag");
                        break;
            case 4:
                        printf("Mittwoch");
                        break;
            case 5:
                        printf("Donnerstag");
                        break;
            case 6:
                        printf("Freitag");
                        break;
            case 7:
                        printf("Samstag");
                        break;
            default:
                break;
            }
        }
        }
    


  • 314159265358979 schrieb:

    Ich glaube eher, dass er nur im falschen Unterforum gelandet ist. 😉

    Ups jetzt habe ich nochmal den Threadtitel gelesen, ist wohl wirklich ausversehen im falschen Unterforum.

    Kann ja jemand mal verschieben.

    Lg freeG



  • Das Programm war für C und nicht C++ 🙂 sorry aber habe gesucht und kein Forum für C gefunden deswegen habe ich mir gedacht,das passt doch.
    nur diese Fehler von Void am Anfang oder später wenn ich das (& ) vergessen habe,die habe ich korrigiert,und gerade habe ich das Programm mit dem normalen Editor Kompiliert und es hat geklappt aber mit Eclipse oder Wascana ist alles durcheinander :S
    könnte jemand mir andere IDE empfehlen! weil ich damals Eclipse für Java brauchte
    Danke



  • Du benutzt vermutlich Windows: dann würde ich Visual Studio empfehlen.



  • manni66 schrieb:

    Du benutzt vermutlich Windows: dann würde ich Visual Studio empfehlen.

    Ja stimmt.Danke:)



  • Das C-Forum ist übrigens hier: http://www.c-plusplus.net/forum/f10



  • if...else würde ich weg machen und 'Falsche Eingabe' in den default-Zweig packen.



  • Dieser Thread wurde von Moderator/in CStoll aus dem Forum C++ (auch C++0x) in das Forum C (C89 und C99) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Mach doch mal ein Zeilenvorschub in deine printf (mit \n) mit an. Dann solltest du auch was sehen.



  • #include <stdio.h>
    int main (){
        int tag;
        printf("Geben sie eine Zahl zwischen 1 und 7");
        scanf("%d",&tag);
            switch(tag){
            case 1:
                printf("Sonntag");
                break;
            case 2:
                        printf("Montag");
                        break;
            case 3:
                        printf("Dienstag");
                        break;
            case 4:
                        printf("Mittwoch");
                        break;
            case 5:
                        printf("Donnerstag");
                        break;
            case 6:
                        printf("Freitag");
                        break;
            case 7:
                        printf("Samstag");
                        break;
            default:    printf("Falsche Eingabe");
                break;
            }
        return 0;
        }
    


  • #include <stdio.h>
    #include <string.h>
    
    const char *Weekdays[] = {"Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"};
    
    int main()
    {
    	int day;
    
    	printf("Geben Sie eine Zahl zwischen 1 und 7 ein: ");
    	scanf("%d", &day);
    
    	if (day >= 1 && day <= 7)
    	{
    		printf("%s\n", Weekdays[day - 1]);
    	}
    	else
    	{
    		printf("Fehlerhafte Eingabe!\n");
    	}
    
    	return 0;
    }
    

Anmelden zum Antworten