Ich versuche zu verstehen, warum ich diese Ausgabe bekomme, legte ich eine While-Schleife, um zu einer anderen Methode ausgehen, ich weiß nicht, warum es nicht funktioniert! Die Operation bei der Fehlersuche zeigt mir den Wert 1, die gleiche Bedingung für die Einfügung in die if-Klausel und die Registermethode, um "Test" auf dem Bildschirm zu drucken.C - While loop error
//Struct Student
typedef struct {
char name[50];
float grade[4];
int status;
} Student;
Student students[MAX_STUDENT];
//Methods Statements
void menu();
void registerStudent();
void deleteStudent();
void reproved();
void search();
int operation;
int main() {
menu();
return 0;
}
//Display menu
void menu(){
system("cls");
while(operation != 5){
printf("1 - Register Student\n");
printf("2 - Delete Student\n");
printf("3 - Reproved Students\n");
printf("4 - Find Student\n");
printf("5 - Exit\n");
scanf("%i", &operation);
if(operation == 1){
registerStudent();
}
};
}
void registerStudent(){
char name[50];
float grade[4];
int op;
int i;
while(op != 0){
system("cls");
printf("Type the name: ");
//Fgets to read line
fgets(name, sizeof(name), stdin);
printf("First two months: ");
scanf("%f", &grade[0]);
printf("Second two months: ");
scanf("%f", &grade[1]);
printf("Third two months: ");
scanf("%f", &grade[2]);
printf("Fouth two months: ");
scanf("%f", &grade[3]);
printf("1 - Continue\n");
printf("0 - Exit\n");
for(i=0; i<MAX_STUDENT; i++){
if(students[i].status == 0){
students[i].grade[0] = grade[0];
students[i].grade[1] = grade[1];
students[i].grade[2] = grade[2];
students[i].grade[3] = grade[3];
strcpy(students[i].name, name);
break;
}
}
}
}
Ausgang:
PS: Jetzt seine Arbeiten!
es funktioniert für mich. Stellen Sie sicher, dass Sie alle notwendigen 'include' Dateien haben. – Barmar
Nach "Test" eine neue Zeile einfügen. – Barmar
Die 'while()' Schleife endet, wenn sie 5 eingeben, aber das Menü sagt 0. – Barmar