Anzahl in * ausgeben



  • Hallo zusammen

    Ich Anfänger in C und würde gerne im folgenden Programm noch etwas kleines verändern, weiss aber nicht genau, wie man das macht. Die Anzahl Noten sollen als Sternchen ausgegeben werden, also z.B. wenns 3 Noten bei der Note 5 sind sollen 3 Sternchen ausgegeben werden. Hier ist mein Programm?

    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
    int Note1 = 0;
    int Note2 = 0;
    int Note3 = 0;
    int Note4 = 0;
    int Note5 = 0;
    int Note6 = 0;
    int Schueler = 0;
    int Allenoten = 0;
    int E = 0; //Eingabe

    printf("Notenstatistik\n");
    printf("Eingabe mit -1 beenden\n");
    printf("------------------------\n");

    printf("Note eingeben: ");
    scanf("%i", &E);

    if(E > 6 || E < 1)
    {
    if(E != -1)
    {
    printf("Eingabe ist nicht zulaessig");
    return 0;
    }
    }

    while(E != -1)
    {
    Schueler++;
    Allenoten = Allenoten + E;
    switch(E)
    {
    case 1:
    Note1++;
    break;
    case 2:
    Note2++;
    break;
    case 3:
    Note3++;
    break;
    case 4:
    Note4++;
    break;
    case 5:
    Note5++;
    break;
    case 6:
    Note6++;
    break;
    }

    printf("Note eingeben: ");
    scanf("%i", &E);

    if(E > 6 || E < 1)
    {
    if(E != -1)
    {
    printf("Eingabe ist nicht zulaessig");
    return 0;
    }
    }
    }

    if(Schueler == 0)
    {
    Schueler = 1;
    }

    printf("------------------------\n");
    printf("Anzahl Schueler: %i\n\n", Schueler);
    printf("Anzahl Note1: %i\n", Note1);
    printf("Anzahl Note2: %i\n", Note2);
    printf("Anzahl Note3: %i\n", Note3);
    printf("Anzahl Note4: %i\n", Note4);
    printf("Anzahl Note5: %i\n", Note5);
    printf("Anzahl Note6: %i\n\n", Note6);
    printf("Durchschnitt: %f\n", (float) Allenoten/Schueler);
    printf("------------------------\n");

    return 0;
    }

    Weiss von euch wer, wie ich das hinkriege?
    Danke schon mal für die Antworten.

    LG Cirrak


  • Mod

    Bond schrieb:

    Hier ist mein Programm?

    Bist du dir nicht sicher, ob es dein Programm ist?

    Weiss von euch wer, wie ich das hinkriege?

    Mit einer Schleife. Vorzugsweise noch zusammen mit einer Funktion. Ist wahrscheinlich noch nicht drangekommen in deinem Kurs, sonst wärst du selber darauf gekommen. Kommt bestimmt als nächstes Thema.

    P.S.: In Zukunft bitte die Code-Tags benutzen, wenn du Code einstellst. Dann wird der auch formatiert:

    char test[] = "Viel schöner so";
    

    Zu finden sind die verschiedenen Tags unter dem Editfenster, unter den Smileys. Für C nimmst du den Formatierungsbutton unter dem " 😡 "



  • Hi

    Danke für die schnelle Antwort, jedoch bringt mich das nicht weiter.
    Die Sache mit dem Fragezeichen ud den Code-Tags habe ich leider erst nachher gesehen, sry ;).

    Wie kann man denn nun eine Anzahl in das Zeichen "*" umwandeln?



  • ...



  • Bond schrieb:

    Hi

    Danke für die schnelle Antwort, jedoch bringt mich das nicht weiter.
    Die Sache mit dem Fragezeichen ud den Code-Tags habe ich leider erst nachher gesehen, sry ;).

    Wie kann man denn nun eine Anzahl in das Zeichen "*" umwandeln?

    hattet ihr schon funktionen?

    void num2asterisk_conver0r ( unsigned n )
    {
    	int i;
    	for ( i = 0; i < n; i++ )
    		putchar ( '*' );
    }
    
    int main ( void )
    {
    
    	unsigned number = 5;
    	num2asterisk_conver0r ( number );
    	return 0;
    }
    

  • Mod

    Da fehlt ein 't'!



  • Wenn Du nur eine bestimmte (niedrige) Anzahl von '*' willst, kannst Du auch einen string mit der maximalen Anzahl erstellen und dann mit der field width von printf() arbeiten.
    Allerdings vermute ich dass das lesen und verstehen der Dokumentation von printf viel schwieriger für Dich sein wird, als eine simple Schleife mit while und putchar() auf die Beine zu stellen.
    Letzteres sollte aber Deinem Kenntnisstand entsprechen - vorausgesetzt der gezeigte Code ist wirklich von Dir.



  • SeppJ schrieb:

    Da fehlt ein 't'!

    lol!
    ja natürlich hast du recht. *grins*
    sorry. bin a bissli im stress hier 🙂



  • Immer wo du Funktionalitäten sinnvoll kapseln kannst, nutze Funktionen. Dazu sind sie da.
    lokal-static ist zwar nicht das allerbeste Design, aber sollte für dich und deinen Lehrer erstmal ausreichen.

    http://ideone.com/67ZygM



  • Danke für all eure Antworten, sie haben mir wirklich geholfen. Funktionen nehmen wir jetzt gerade durch.


Log in to reply