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;
}