Bubble Sort Name und Nummern



  • Hallo, vielleicht kann mir hier jemand helfen. Ich muss ein Programm in C schreiben das 5 Namen mit zugehöriger Matrikelnummer einliest und wieder je nach auswahl nach Namen oder Martikelnummer sortiert. Er zeigt mir zwei Fehler an:

    (22) : error C2106: '=' : Linker Operand muss ein L-Wert sein
    (23) : error C2106: '=' : Linker Operand muss ein L-Wert sein

    Zu dem weiß ich nicht wie ich den die BubbleSort Funktion intigieren kann, bitte um hilfe.

    hier mein Quelltext:

    #include <stdio.h>
    #include <string.h>
    #define MAX 10
    
    struct studperson
    {
    		int matnr;
    		char name[MAX];
    };
    
    void BubbleSort(int student, int Anzahl)
    {
    	int i;      /* erstes Element im unsortierten Teil */
    	int j;      /* Index der aufsteigenden Blasen */
    	int temp;   /* für Austausch zweier Elemente */
    
    	for (i = 0; i < Anzahl - 1; i++)
    		for (j = i + 1; j < Anzahl; j++)
    			if ((student + j) < (student + i))
    			{
    				temp = (student + i);
    				(student + i) = (student + j);
    				(student + j) = temp;
    			}
    }
    
    int main()
    {
    	struct studperson student[5];
    	int i,a;
    
    	for(i=0;i<5;i++) //Eingabe von Studenten Daten
    	{
    		printf("Name: ");
    		fflush(stdin);
    		scanf("%s",&student[i].name);
    
    		printf("Matrikel-Nr: ");
    		fflush(stdin);
    		scanf("%i",&student[i].matnr);
    		printf("\n");
    	}
    
    	printf("\nMatr-Nr:   ");
    	printf("Name:");
    	printf("\n----------------\n");
    
    	for(i=0;i<5;i++) //Ausgabe von Studenten Daten
    	{
    		printf("%i   ",student[i].matnr);
    		printf("%s",student[i].name);
    		printf("\n");
    	}
    
    	printf("Soll nach Matr-Nr (0) oder nach Name (1) sortiert werden? ");
    	scanf("%i", &a);
    
    	switch (a)
    	{
    		case 0:
    			printf("\nMatr-Nr:   ");
    			printf("Name:");
    			printf("\n----------------\n");
    
    			for(i=0;i<5;i++) //Ausgabe von Sortierten Studenten Daten nach Matr-Nr.
    			{
    				printf("%i   ",student[i].matnr);
    				printf("%s",student[i].name);
    				printf("\n");
    			}
    			break;
    
    		case 1:
    			printf("\nMatr-Nr:   ");
    			printf("Name:");
    			printf("\n----------------\n");
    
    			for(i=0;i<5;i++) //Ausgabe von Sortierten Studenten Daten nach Name
    			{
    				printf("%i   ",student[i].matnr);
    				printf("%s",student[i].name);
    				printf("\n");
    			}
    			break;
    
    	}
    
    return 0;
    
    }
    


  • Du bist hier im C# und .NET Forum gelandet. Also knapp daneben...

    Zum Fehler: der Parameter "Student" Deiner Funktion "BubbleSort" macht keinen Sinn, weil das ein int ist. Ein int enthält eine Zahl. Keine Namen oder gar Strukturen.

    Deshalb muß links vom Gleichheitzeichen eine Variable stehen, die etwas aufnimmt. Was Du wohl machen willst: ein Array aus studperson Einträgen übergeben und sortieren und keine einzige int Variable. Die einzige Variable kann man auch recht schlecht sortieren... 😉



  • Dieser Thread wurde von Moderator/in CMatt aus dem Forum C# und .NET in das Forum ANSI C verschoben.

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

    Dieses Posting wurde automatisch erzeugt.



  • was soll denn (student + i) bedeuten?

    http://www.pronix.de/pronix-4.html
    schmoekern bitte.


Anmelden zum Antworten