-1
即時通訊試圖瞭解爲什麼我得到這個輸出,我把一個while循環出去到另一個方法,我不知道它爲什麼不工作!在調試操作顯示我的價值1,相同的條件,以if的勞工intry和調用登記方法在屏幕上打印「測試」。C - 雖然循環錯誤
//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;
}
}
}
}
輸出:
PS:現在它的工作!
它適合我。確保你有所有必要的'#include'文件。 – Barmar
在'test'後放一個換行符。 – Barmar
'while()'循環結束時,他們鍵入5,但菜單說0. – Barmar