문과생 포인터공부하고있는데 어디가 잘못된걸까요?
보늬
일단 문제가 0번부터 학생등록해서 조회하고 제거하는 시스템인데...(제거시에는 번호 땡겨지도록)등록후에 제거나 따른 메뉴 선택 후 리스트출력이나 학생 수 출력이 제대로 안되는것같아서요...거의 다 완성한것같은데 몇시간째 풀리지가않네요...책봐도 뭐 비슷한 예제도없고... 어디가 잘못된걸까요?
#includestdio.h#includestring.h#define MAX 10
struct student{ int num; int grade; char name[20]; char major[20];};
struct student studentList[MAX]; int NumberOfStudent;
int main(void){ int selection, i, j;
while(1) { printf( 메뉴를 선택하세요. \n); printf(\t 1 ... 학생 등록\n); printf(\t 2 ... 학생 제거\n); printf(\t 3 ... 학생 리스트 출력\n); printf(\t 4 ... 학생 정보 출력\n); printf(\t 5 ... 학생 수 출력\n); printf(\t 0 ... 프로그램 종료\n); printf( 메뉴 선택 : ); scanf(%d, &selection); switch(selection) { case 1: //완료 if(NumberOfStudent=MAX) { printf(학생리스트가 꽉 찼습니다.(최대 %d 명)\n, MAX); } printf(등록할 학생 정보를 입력하세요.\n); printf(학번 : ); scanf(%d, &studentList[NumberOfStudent].num); printf(학년 : ); scanf(%d, &studentList[NumberOfStudent].grade); printf(전공 : ); scanf(%s, &studentList[NumberOfStudent].major); printf(이름 : ); scanf(%s, &studentList[NumberOfStudent].name); NumberOfStudent++; printf(등록이 완료되었습니다.\n\n); break;
case 2: printf(제거할 학생 선택 : ); scanf(%d, &NumberOfStudent); for(i=NumberOfStudent;i=MAX;i++) { studentList[i].num = studentList[i+1].num; studentList[i].grade = studentList[i+1].grade; strcpy(studentList[i].major, studentList[i+1].major); strcpy(studentList[i].name, studentList[i+1].name); } printf(제거가 완료되었습니다.\n\n); NumberOfStudent--; break;
case 3: //완료 printf(** 학생 리스트 **\n); for(j=0; j=NumberOfStudent-1; j++) { printf(%d ... %s\n, j, studentList[j].name); } break;
case 4: //완료 printf(정보를 출력할 학생 선택 : ); scanf(%d, &NumberOfStudent); printf(%s %d학년 %d %s\n\n, studentList[NumberOfStudent].major, studentList[NumberOfStudent].grade, studentList[NumberOfStudent].num, studentList[NumberOfStudent].major); break;
case 5: printf(현재 등록된 학생 수 : %d\n\n, NumberOfStudent); break;
case 0: return 0;
default: printf(번호를 잘못 입력하였습니다.\n\n); } }}
-
빗줄기 2023-09-28
case 2: = 이 부분은 이해가 잘..안되요
printf(\제거할 학생 선택 : \); == 특정 번호의 학생을 제거할려면,
scanf(\%d\ -
다참 2023-09-28
if(NumberOfStudent=MAX)
{
printf(\학생리스트가 꽉 찼습니다.(최대 %d 명)\\n\ -
핑1크캣 2023-09-28
printf(\전공 : \);
scanf(\%s\