У меня проблема с кодом. Функция не будет завершена, и она продолжит цикл навсегда. Я своего рода новый, когда речь идет о компиляции C в Linux (я из Dev-C++ ..)Оператор break не работает в цикле (gcc)
Вот код:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAX 10
struct student{
char lname[20];
char fname[20];
int idnum[8];
int year;
};
struct course{
char cname[4];
struct student stud[MAX];
};
int main()
{
struct course c[0];
userSelect(&c);
return 0;
}
int userSelect(struct course *p_course)
{
int z=0, x;
printf("1 - Create course\n2 - Edit course\n3 - Add student(s)\n4 - Edit student data\n5 - Delete\n6 - Quit");
scanf("\n%d", &x);
while(z==0){
switch(x){
ccase 1: userCreateCourse(p_course);
break;
//case 2: userEditCourse(&c);
//break;
//case 3: userCreateStudents(&c);
//break;
//case 4: userEditStudents(&c);
//break;
case 6: printf("bye");
z++;
break;
default: printf("Invalid input");
break;
}
}
}
int userCreateCourse(struct course *p_course)
{
int *cnum=0, i;
cnum=(int *)malloc(sizeof(int));
cnum++;
printf("Enter course (ex: BSCS): ");
fgets(p_course[*cnum-1].cname, sizeof(p_course[*cnum-1]), stdin);
puts(p_course[*cnum-1].cname);
}
Если я выбираю 1, это выход:
1 - Create course 2 - Edit course 3 - Add student(s) 4 - Edit student data 5 - Delete 6 - Quit1 Enter course (ex: BSCS): H��4k Enter course (ex: BSCS): AAAA AAAA Enter course (ex: BSCS): AAAA AAAA Enter course (ex: BSCS):
и он продолжает делать это бесконечно, пока не закрою терминал. Я действительно не знаю, что это неправильно .. Кто-то помочь :(
Не записывайте код как этот 'case 6: printf (" bye "); z ++; break;' это ужасно. Трудно читать и уродливо. Я не понимаю, чего ты хочешь. –
Простите, что я был в спешке, когда я сделал заявление о переключении. Сейчас я отредактирую его. – Nari
'case 6: printf (" bye "); z ++; break;' не выполняется вообще. Поэтому значение z всегда равно 0. – Jeyaram