#include <stdio.h>

#include <string.h>

#define NUM 100/*전역변수 설정*/


/*학생의 학번 이름 비밀번호 구조체 생성*/

typedef struct student_mem{

char student_id[NUM];

char student_name[NUM];

int student_pw;

}mem;



/*회원가입 함수*/

int join(student_mem mem[], int a){


int b = 0;

printf("학번을 입력하세요. <10자 이내>.\n");

printf("\n입력 : ");

scanf_s("%s", &(mem + b)->student_id);/*(mem + b)->student_????와 같은 형식으로 간접참조를 사용하였음.. 따라서, scnaf로입력받은학생의 학번을 student_id에 기입.*/

printf("비밀번호를 입력하세요. <숫자만 입력>\n");

printf("입력 ");

scanf_s("%d", &(mem + b)->student_pw);/*같은 방법으로 비밀번호를 student_pw에 기입.*/

printf("\n이름을 입력하세요. <5자 이내>\n");

printf("입력 : ");

scanf_s("%s", &(mem + b)->student_name);/*같은 방법으로 이름을 studnet_name에 기입.*/


printf("%s님 회원가입이 완료되었습니다!\n", (mem + b)->student_id);/*회원가입완료를 알림.*/

printf("환영합니다 ^^ 로그인을 해주세요.\n");



return a++; /*회원가입정보를 저장하기위함.*/


}


void login(student_mem mem[]){


char id_Check[NUM];/*학번 체크를위한 변수*/

int pw_Check;/*비밀번호 체크를위한 변수*/

int repeat = 0;/*반복문사용을 위한 변수*/

int Check = 0;/*밑에보이는 if (Check == 6)

printf("로그인성공.\n");

else

printf("없는회원이거나 비밀번호가 다릅니다.\n");

함수를 호출하기 위한 변수*/


printf("학번 : ");

scanf_s("%c", &id_Check);

printf("\n비밀번호 :");

scanf_s("%d", &pw_Check);


for (repeat = 0; repeat<100; repeat++){



if (strcmp((mem + repeat)->student_id, id_Check) && ((mem + repeat)->student_pw == pw_Check))

/*strcmp를 통해 학번비교, == 연산자를 통한 비밀번호비교*/

Check = 6;

/*앞서 언급한 Check변수에 임의의 값을 저장*/

else

Check = 66;

/*앞서 언급한 Check변수에 임의의 값을 저장*/

}



if (Check == 6)

printf("로그인성공.\n");

else

printf("없는회원이거나 비밀번호가 다릅니다.\n");

}

int main(){


printf("=====================================\n\n");

printf("1.회원가입 하기\n");

printf("2.로그인 하기\n");

printf("3.종료\n\n");


printf("\n\n원하는 메뉴를 선택하세요 : ");


int number = 0;/*switch문 사용을 위한 변수*/

scanf_s("%d", &number);/*직접적으로 메뉴(회원가입,로그인,종료)를 호출*/

while (1){

switch (number)

{

case 1:

join(mem[], int a);

break;

case 2:

login(mem[]);

break;

case 3:

break;

}


break;

}


return 0;

}


메인함수에서 오류가뜨는데 잘모르겟네요;; 미칠지경;