Sehr komischer Fehler - HILFE!! (dringend)



  • Hallo!
    Ich habe morgen eine Klausur zum Thema Sturkturen zu schreiben.
    Leider erhalte ich immer einene unerwarteten Fehler von meinem Borland 3.11 Compiler.
    Könnt ihr mir einen Tipp geben?

    Wäre euch sehr dankbar, wenn ich das Problem heute noch beseitigen könnte.

    Wunderte euch nicht über meinen Scrip-Stil. 😉

    Fehler: 110: ) expected

    // Verwalten einer Liste von CDs
    
    #include <stdio.h>
    #include <iostream.h>
    #include <conio.h>
    #include <ctype.h>
    #include <string.h>
    
    #define MAX_ANZAHL 10
    
    struct CD
    {	int nr;
    	char titel[40],
    		  interpret[40];
    	char  genre[20];
    	float preis;
    };
    
    int anzahl = 0; // Anzahl der CDs in der Liste
    
    char menue()
    {
    	char antwort;
    	printf("\n\nCD-VERWALTUNG");
    	printf("\nfuege an.............a");         //erledigt
    	printf("\ngib liste aus........g");         //erledigt
    	printf("\nsuche................s");
    	printf("\nbeenden..............b  ");       //erledigt
    	antwort = tolower(getche());
    	return(antwort);
    }
    
    void meldung()
    {	printf("\n\nDiese Funktion ist noch nicht implementiert?");
    }
    
    CD eingabe()
    {
    	CD cd;
    
    	fflush(stdin);
    	printf("\n\nNummer: ");
    	scanf("%d",&cd.nr);
    
    	fflush(stdin);
    	printf("Titel: ");
    	gets(cd.titel);
    
    	fflush(stdin);
    	printf("Interpret: ");
    	gets(cd.interpret);
    
    	fflush(stdin);
    	printf("Genre: ");
    	gets(cd.genre);
    
    	fflush(stdin);
    	printf("Preis: ");
    	scanf("%f",&cd.preis);
    	return(cd);
    
    }
    
    void fuegeAn(CD cds[], CD cd)
    {
      cds[anzahl]=cd;
      anzahl++;
    }
    
    void gibAus(CD cd)
    {	printf("\n\n\n------------- CD -------------");
    	printf("\n\n Nummer \t: %d", cd.nr);
    	printf("\n\n Titel  \t: %s", cd.titel);
    	printf("\n\n Interpret \t: %s", cd.interpret);
    	printf("\n\n Genre  \t: %s", cd.genre);
    	printf("\n\n Preis  \t: %f", cd.preis);
    }
    
    void gibAusListe(CD cds[])
    {	printf("\n\nDie CDs :");
    	for(int i = 0; i < anzahl; i++)
    	{	gibAus(cds[i]);
    	}
    }
    
    void suche(CD cds[], name)
    {      
    	for(int i=0; i<anzahl; i++)
    	{
    		if(strcmp(cds[i].titel,name)==0)
    		{
    			return(i);
    		}
    	}
    	return(-1);
    }
    
    void main()
    {	CD cds[MAX_ANZAHL], cd;
    	char antwort, name[20];
    	int index;
    
    	clrscr();
    	do
    	{	antwort = menue();
    		switch(antwort)
    		{	case 'a':
    				cd = eingabe();
    				fuegeAn(cds,cd);
    				break;
    			case 'g': gibAusListe(cds);
    				break;
    			case 's':
    				fflush(stdin);
    				printf("\nWelchen Namen soi i suchen?");
    				gets(name);
    				index = suche(cds, name);
    				if(index<0)
    				{	printf("\nName %s nicht gefunden",name);
    				}
    				else
    				{	gibAus(cds[i]);
    				}
    
    				break;
    			default:    break;
    		}
    	} while(antwort != 'b');
    }
    


  • Corona schrieb:

    Fehler: 110: ) expected

    Erwartest du, daß wir jetzt die Zeilen einzeln abzählen um zu sehen,
    wo der Fehler auftritt?

    Nein, danke!



  • Achso, SORRY, hab ich in der Eile ganz vergessen. 😞

    void suche(CD cds[], name)
    {      
        for(int i=0; i<anzahl; i++)
        {
            if(strcmp(cds[i].titel,name)==0)
            {
                return(i);
            }
        }
        return(-1);
    }
    

    Der Fehler passiert dort gleich in der ersten Zeile.



  • hey

    1. funktion sucheCD muss einen int wert zurückgeben, anstatt void
    2. name in sucheCD muss definiert werden vermutlich char*



  • name ist nicht definiert bzw. du hast den typen vergessen.

    edit: zu spät 😞



  • int suche(CD cds[],char* name)
    {      
        for(int i=0; i<anzahl; i++)
        {
            if(strcmp(cds[i].titel,name)==0)
            {
                return(i);
            }
        }
        return(-1);
    }
    


  • VIELEN DANK!

    *lol*, wenn ich das Programm nun starte und eine Suche starte, dann erhalte ich als Antwort negative Zahlen, Wochentage und Uhrzeiten, ist das normal? 😃



  • ich erhalte die passende CD :p oder die meldung das es die CD nicht gibt.

    // Verwalten einer Liste von CDs
    #include <stdio.h>
    #include <iostream>
    #include <conio.h>
    #include <ctype.h>
    #include <string.h>
    
    #define MAX_ANZAHL 10
    
    struct CD
    {    int nr;
        char titel[40],
              interpret[40];
        char  genre[20];
        float preis;
    };
    
    int anzahl = 0; // Anzahl der CDs in der Liste
    char antwort, name[20];
    
    char menue()
    {
        char antwort;
        printf("\n\nCD-VERWALTUNG");
        printf("\nfuege an.............a");         //erledigt
        printf("\ngib liste aus........g");         //erledigt
        printf("\nsuche................s");
        printf("\nbeenden..............b  ");       //erledigt
        antwort = tolower(getche());
        return(antwort);
    }
    
    void meldung()
    {    printf("\n\nDiese Funktion ist noch nicht implementiert?");
    }
    
    CD eingabe()
    {
        CD cd;
    
        fflush(stdin);
        printf("\n\nNummer: ");
        scanf("%d",&cd.nr);
    
        fflush(stdin);
        printf("Titel: ");
        gets(cd.titel);
    
        fflush(stdin);
        printf("Interpret: ");
        gets(cd.interpret);
    
        fflush(stdin);
        printf("Genre: ");
        gets(cd.genre);
    
        fflush(stdin);
        printf("Preis: ");
        scanf("%f",&cd.preis);
        return(cd);
    
    }
    
    void fuegeAn(CD cds[], CD cd)
    {
      cds[anzahl]=cd;
      anzahl++;
    }
    
    void gibAus(CD cd)
    {    printf("\n\n\n------------- CD -------------");
        printf("\n\n Nummer \t: %d", cd.nr);
        printf("\n\n Titel  \t: %s", cd.titel);
        printf("\n\n Interpret \t: %s", cd.interpret);
        printf("\n\n Genre  \t: %s", cd.genre);
        printf("\n\n Preis  \t: %f", cd.preis);
    }
    
    void gibAusListe(CD cds[])
    {    printf("\n\nDie CDs :");
        for(int i = 0; i < anzahl; i++)
        {    gibAus(cds[i]);
        }
    }
    
    int suche(CD cds[],char* name)
    {      
        for(int i=0; i<anzahl; i++)
        {
            if(strcmp(cds[i].titel,name)==0)
            {
                return(i);
            }
        }
        return(-1);
    }
    
    int main(int argc, char** argv) 
    {    CD cds[MAX_ANZAHL], cd;
        char antwort, name[20];
        int index;
    
        system("cls");
        do
        {    antwort = menue();
            switch(antwort)
            {    case 'a':
                    cd = eingabe();
                    fuegeAn(cds,cd);
                    break;
                case 'g': gibAusListe(cds);
                    break;
                case 's':
                    fflush(stdin);
                    printf("\nWelchen Namen soll ich suchen?");
                    gets(name);
                    index = suche(cds, name);
                    if(index<0)
                    {    printf("\nName %s nicht gefunden",name);
                    }
                    else
                    {    gibAus(cds[index]);
                    }
    
                    break;
                default:    break;
            }
        } while(antwort != 'b');
    }
    


  • hehe .. wie ich sehe hast Du im letzten Teil das "void main" durch ein "int main(...)" ersetzt, was genau ist da der Unterschied? Eine Vereinfachung?



  • void main gibt es laut standard nicht.


Anmelden zum Antworten