ICH BRAUCHE HILFE!!!



  • Hi!
    Hab eine sehr dringende frage:

    Ich muss für die Schule ein Programm schreiben wo wann zunächst eine anzahl von schülern auswählen kann, dann die namen der schüler eintragen muss und dann eine frage wieviel klausuren im jahr geschrieben wurden und dann muss man für jeden einzelnen schüler die noten der klausuren eingeben. als letztes wird dann der klassendurchschnitt und der schülerdurchschnitt errechnet.
    ich habe schon mit dem programm angefangen und werde die bisheriege Syntax hier mit reinstellen. Ich bin gerade erst mit der C-Programmierung angefangen und daher kann ich im entefeckt noch nicht wirklich viel... also wäre super wenn mir da jemand weiterhelfen könnte...
    Bekomme immer den Fehler: C2660

    schonmal DANKE im vorraus!!!

    #include "stdafx.h"
    #include <conio.h>
    #include "stdio.h"
    #include <stdlib.h>
    
    #define MAXSCH 35
    #define MAXKA 10
    
    int noten[MAXSCH] [MAXKA],anz_sch,anz_ka;
    
    int lieszahl(int min, int max, int zahl)
    
    {
    	fflush(stdin);
    	scanf("%i",&zahl);
    	return(zahl);
    }
    
    void eingabe()
    {
    	int ka,sch;
    
    	printf("KA_Erfassung:\n\n");
    	printf("Anzahl der Schueler (1...%i): ",MAXSCH);
    	anz_sch=lieszahl(1,MAXSCH);
    	printf("Anzahl der Klassenarbeiten (1...%i): ",MAXKA);
    	anz_ka=lieszahl(1,MAXKA);
    	for (ka=0; ka<anz_ka; ka++)
    	{
    		printf ("\nNoten der %i. Klassenarbeit ....\n",ka+1);
    		for (sch=0; sch<anz_sch; sch++)
    		{
    			printf ("   Schueler %i : ",sch+1);
    			noten[sch][ka]=lieszahl(1,6);
    		}
    	}
    
    }
    
    void tab_ausgabe()
    {
    	int ka,sch;
    
    	printf("KA_UEBERSICHT:\n\n\n");
    	printf("               ");
    	for (ka=0; ka<anz_ka; ka++)
    		printf ("  KA%i",ka+1);
    	printf ("\n\n");
    	for (sch=0; sch<anz_sch; sch++);
    	{
    		printf("Schueler %2i :     ",sch+1);
    		for (ka=0; ka<anz_ka; ka++)
    			printf("     %i    ",noten[sch][ka]);
    		printf("\n");
    	}
    	printf ("\n\nZUm Beenden eine beliebige Taste druecken !");
    	while(!kbhit());
    }
    
    int main()
    
    {
    	printf("\n\nDas ist das Klassenarbeitsbuch programmiert von \n\n");
    
    	eingabe();
    	tab_ausgabe();
    	return (0);
    }
    


  • kannst du die Zeile in der der Fehler passiert und die Fehlermeldung hier eintragen, damit man helfen kann.



  • anz_sch=lieszahl(1,MAXSCH);

    die braucht drei parameter, .. beim drüberschaun erstmal das gefunden, ..
    und lass die stdafx weg.. unnötig 🙂



  • Erstmal danke für die schnellen antworten... Dies sind die Reihen in der die Fehler sind... was ist daran falsch?? THX

    anz_sch=lieszahl(1,MAXSCH);

    anz_ka=lieszahl(1,MAXKA);

    noten[sch][ka]=lieszahl(1,6);



  • elise schrieb:

    anz_sch=lieszahl(1,MAXSCH);

    die braucht drei parameter, .. beim drüberschaun erstmal das gefunden, ..
    und lass die stdafx weg.. unnötig 🙂

    steht da doch



  • Ich bin voll der NOOOB in sachen C! wie kann ich den fehler denn beheben?



  • na wenn du eine Funktion schreibst die 3Parameter erwartet, musst du ihr auch
    3Parameter übergeben und keine 2.
    Wofür der dritte parameter gut ist weiß ich nicht, das musst du wissen.



  • Ich hab sooooo kein plan von C! hab das obenstehende programm von einem zettel abgeschrieben und hab voll kein plan davon! Danke für deine hilfe aber ich kann das irgendwie nicht umsetzen! THX



  • Du verwendest diese Funktion hier:

    int lieszahl(int min, int max, int zahl) 
    
    { 
        fflush(stdin); 
        scanf("%i",&zahl); 
        return(zahl); 
    }
    

    Diese verlangt 3Parameter (sieht man in der Klammer), du übergibst ihr aber
    immer nur 2Variablen, eine Fehlt ihr aber noch.
    Was ich seltsam finde ist, dass sie im Grunde nur 1Parameter oder sogar gar keinen
    bräuchte wenn int zahl als globale variable existiert.
    Wenn du wirklich so geringe Kentnisse hast solltest du dir schleunigst die grundlagend
    aneignen, du tust dir so keinen gefallen, je weiter ihr fortschreitet umso
    schwerer wird es.
    Ich könnte dir mühelos das gesamte programm schreiben, aber nützen würde es dir 0,
    wenn du es allerdings selbst schaffst und ich/wir dir bei Problemstellen helfen,
    bringt es dir wirklich etwas.



  • Besten Dank! stimmt ich tu mir da wirklich keinen gefallen mit aber wir haben den beschissesten lehrer den es gibt! da verstehen sehr wenige was bei! echt ätzend! ich habe jetzt die funktion rauskommentiert und dann hab ich 2 fehler bekommen!
    error C2146: syntax error : missing ';' before identifier 'eingabe'
    fatal error C1004: unexpected end of file found

    (hab C leider nur in Englisch)

    was soll das? versteh ich absolut nicht also die erste fehlermeldung!

    Naja... BESTEN DANK NOCHMAL!



  • Englisch und lesen hast du in der Schule aber gelernt oder?

    Ich mein nehm dir notfalls mal Wörterbüchle... die Fehlermeldungen geben normalerweise genau das Problem an(wie hier wo du "ein ; vor 'eingabe' vergessen" hast).

    Oder du hast die Funktion auskommentiert und sie wird an anderer Stelle noch benutzt und der ist deshalb verwirrt der compiler.



  • englisch kann ich wohl recht gut weiß aber nicht genau was das alles zubedeuten hat. das mit dem ; hab ich gelößt das war mein fehler aber jetzt habe ich wieder die probleme wie oben: error C2660: 'lieszahl' : function does not take 2 parameters

    ich versteh einfach nciht was ich an der syntax ändern soll... Naja THX



  • 1. lies erstmal ein vernünftiges Tutorial oder Buch!!

    des weiteren:

    int lieszahl(int min, int max, int zahl)
    

    so sieht deien Funktion aus! mehr ist erstmal unwichtig.
    wenn du nun obige funktion aufrufst will sie 3 integer haben. ohne die kann sie ihre Aufgabe nicht erfüllen.
    rufst du sie wie folgt auf:

    anz_sch=lieszahl(1,MAXSCH);
    

    Dann meckert der Compiler und zwar zu recht.
    schau mal in die runden klammern. Was siehst du?? genau! oben "...(int , int, int)" und beim aufruf übergibst du nur 2. Übergieb der funktion nen 3. parameter und alles is ok.

    anz_sch=lieszahl(1, MAXSCH, irgendeinINT);
    


  • Besten Dank für die Antwort hat mir echt schonmal weitergeholfen!
    Nun hoff ich mal meine letzte frage: Bekomm jetzt diese Fehlermeldung

    error C2143: syntax error : missing ';' before 'string'

    in dieser Zeile "int lieszahl("int min, int max, int zahl")";

    wieso ist das so?? ich hab doch in der Zeile davor int noten[MAXSCH] [MAXKA],anz_sch,anz_ka; ein ";" gemacht!

    NAJA THX



  • ia3b schrieb:

    "int lieszahl("int min, int max, int zahl")";

    Also wenn ich das richtig deute würde ich mal sagen du solltest evtl. die " mal aus der Parameterdefinition der Funktion lassen.
    Dadurch das du das in den Klammern s.o. in "" gesetzt hast wertet C das als einen String.

    Dann die Frage, ob die anderen " vor dem ersten int und dem Simekolon aus dem Quellcode stammen oder ob du das letzte Anführungszeichen ausversehen vor das Simekolon gesetzt hast.



  • mal ne frage ich bin auch neuling in c...aber bei nem prototypen aufruf muß man da überhaupt
    int lieszahl(int min, int max, int zahl)schreiben?
    langt da nicht
    void lieszahl(int *zahl)void hat doch als standart rückgabewert immer integer...
    oder ist das falsch????


Anmelden zum Antworten