schleifen



  • irgendwas haut nicht hin....bei negativer punktzahl fragt der mich nicht nochmal nach dem schüler, lässt den nächsten aus und fragt erst wieder nach dem übernächsten. was mache ich falsch?

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main()
    {
    /*
    Schreiben Sie ein Programm, dass für eine Schulklasse mit 'anz' Schülern, die Punktzahl 'pkt' eines
    jeden Schüler aus der Klausur einliest. Bei Eingabe negativer Werte für die Anzahl 'anz' und
    die Punktzahl 'pkt' ist diese zu wiederholen, außerdem gab es maximal 100 Punkte in der Klausur.
    Nach der Eingabe soll das Programm
    - die maximal erreichte Punktzahl ('pkt_max') ,
    - die durchschnittlich erreichte Punktzahl ('pkt_mit') , sowie
    - die Anzahl an Schülern ausgeben die mindestens 50% der Maximalpunktzahl haben ('gut')
    ausgeben.
    
    Zusatz: Das Einlesen der Punktzahl ersetzen durch eine Zufallsfunktion, aber auch hierbei die Überprüfung
    auf Richtigkeit des Wertes für die Punktzahl.
    */
    	int anz,pkt,pkt_ges=0,gut,i=0;
    	float pkt_mit;
    
    	do
    	{
    		printf("Bitte geben Sie die Anzahl der Schueler an:\n");
    		scanf_s("%i",&anz);
    	}
    	while (anz<=0);
    
    	for(i=1;i<=anz;i++)
    	{
    		do
    		{
    			printf("Bitte geben Sie fuer den %i. Schueler die erreichte Punktezahl an:\n",i++);
    			scanf_s("%i",&pkt);
    		}
    		while ((pkt>=0) && (pkt<=100) && (i<=anz));
    
    	}
    
    	return 0;
    }
    


  • Solange die eingegebene Punktzahl >=0 und <=100 (also gültig) ist, liest du immer wieder für denselben Schüler ein. Erst wenn man eine ungültige Zahl eingibt, kommt man aus der do-while-Schleife raus und fährt mit dem nächsten Schüler fort. Sicher nicht in deinem Sinn. Und natürlich musst du eine Gesamtsumme bilden, um am Ende den Durchschnitt ausgeben zu können.



  • UNd was glaubst du was c# und Net mit c zu tun hat?



  • Ansi C
    C++
    C#

    Ansi C fängt mit A an, C++ ist es nicht, bleibt wohl nur C# - fängt mit C an. Und das macht man ja :xmas2:



  • c ist eben c auch wenn es c# ist.
    In einem Dokument macht das # ja nichts.

    Ist aber ein Unterschied ob man

    #include <time.h>
    oder
    include <time.h>

    schreibt.

    @stotty:
    Frage bitte nächstes mal in ANSI-C.


Anmelden zum Antworten