Ich habe eine Weile in diesem Chaos gewesen und ich habe immer noch nicht herausgefunden, wo ich falsch liege, total kniff mich, wenn es etwas lächerlich wie ein Zeiger ist.Auf der Suche nach einer Übereinstimmung in einem Struktur-Array
Gezeigte Aufgabe: Es wird versucht, ein Struktur-Array mit Studenten-ID, Name, Nachname, Geburtsdatum und Noten zu füllen. Suchen Sie dann nach einer übereinstimmenden ID, die dem Benutzer zugewiesen wurde.
Ich würde jede Hilfe in Bezug auf dieses Thema sehr schätzen, ich habe ernsthaft für eine Weile daran feststecken. Auch ich entschuldige mich im Voraus für die französisch Teile
// Part 1
struct Date{
int day;
int month;
int year;
};
// Part 2
struct Student{
int ID;
char name[20];
char lastname[20];
struct Date DOB;
int notes[J];
};
// Part 3
void FillStudentList(struct Student E){
int i;
printf("\nInsert ID: ");
scanf("%d", &E.ID);
printf("Insert name: ");
scanf("%s", &E.name);
printf("Insert last name: ");
scanf("%s", &E.lastname);
printf("Insert date of birth: ");
scanf("%d %d %d", &E.DOB.day, &E.DOB.month, &E.DOB.year);
printf("Insert notes: ");
for(i=0; i<J; i++)
scanf("%d", &E.Notes[i]);
}
// Part 4
void ShowByNb(int Nb, struct Student E[], int NbStudents){
int j, i;
for(i=0; i<NbStudents; i++){
if (E[i].ID== Nb){
printf("\nID: %d", E[i].ID);
printf("\nName: %s", E[i].name);
printf("\nLast Name: %s", E[i].lastname);
printf("\nDate Of Birth: %s-%s-%s", E[i].DOB.day, E[i].DOB.month, E[i].DOB.year);
printf("\nNotes: ");
for(j=0; j<J; j++){
printf("%d", E[i].Notes[j]);
}
}
else
printf("\nInvalid Student!\n");
}
}
// Part 5
void main(){
int i, x;
struct Student E[N];
for(i=0; i<N; i++){
printf("\n\nStudent #%d", i+1);
FillStudentList(E[i]);
}
printf("\n\nSearch student by NB: ");
scanf("%d", &x);
ShowByNb(x, E, N);
}
Was ist die Ausgabe, die Sie bekommen? Verwenden Sie bessere Namen für Ihre Variablen und Funktionen. –
Die Elemente von 'Dat' sind' int', aber Sie lesen sie mit '% s' anstelle von'% d'. Das wird nicht funktionieren. – Barmar
@ViniciusZaramella Entschuldigung, dies ist ein französisches Projekt, deshalb sind die Namen auf Französisch. Die Ausgabe, die ich bekomme, ist "Ungültiger Student!" wenn ich versuche, eine Suche zu machen, die funktionieren sollte. Es wird zweimal geschrieben. EDIT: Ich reparierte es –