학생 관리 프로그램 인데요 ㅠㅠㅠ
단순드립
질문 제목 : 학생 관리 프로그램..질문 요약 :데이터 입력이 이 성별부터 되고...
출력이랑 검색이 안되는데.. 왜 그런지... ㅠㅠ질문 내용 :
#include stdio.h
#include string.h
#include stdlib.h
#define MAX 50
//구조체 선언
struct S {
int num;
char n[20];
char s[20];
char a[20] ;
char tel[20];
}st[MAX];
int menu(void);
void input(void);
void output(void);
void search(void);
void rec(int re);
void quit(void);
int count; //전역변수 선언
void main(void)
{
int choice;
while(1)
{
choice=menu () ;
switch (choice)
{
case 1: input() ; break ;
case 2: output() ; break ;
case 3: search() ; break ;
case 4: quit();
printf(프로그램을 종료합니다....\n);
exit(0);
}
}
}
//메뉴 출력 함수
int menu(void)
{
int ans;
printf( 메뉴 \n);
printf( ====== \n);
printf( 1. 입력부 입력 \n);
printf( 2. 입력부 출력 \n);
printf( 3. 입력부 검색 \n);
printf( 4. 종료 \n\n);
do{
printf( 선택번호 : );
scanf(%d, &ans );
}while (ans1 || ans4);
return ans;
}
//인명부 입력
void input(void)
{
int i;
int ch1;
printf(정보를 입력 하세요 );
for(i=count;iMAX; i++)
{
st[i].num=i+1;
printf(\n1. 이름 : );
gets(st[i].n);
printf(\n2. 성별 : );
gets(st[i].s);
printf(\n3. 본적 : );
gets(st[i].a);
printf(\n4. 전화 : );
gets(st[i].tel);
printf(계속 입력하시겠습니까? ( 1 : 계속 / 9 : 종료));
scanf(%d,&ch1);
if(ch1==9)
count= i;
break;
}
}
//인명부 출력
void output(void)
{
int i;
printf(\n 인 명 부 리 스 트 \n);
printf( ----------------------------------------------- \n);
printf( 성명 성별 본적 전화번호 \n);
printf( ----------------------------------------------- \n);
for(i=0; icount; i++)
printf(%s%s%s%s, st[i].n, st[i].s, st[i].a, st[i].tel);
}
// 인명부 검색
void search(void)
{
char temp[20],ans;
int i,j, found;
while(1)
{
found=0;
printf( 찾는 성명은 ? );
gets(temp);
for(i=0;icount;i++)
if(strcmp (temp, st[i].n)==0)
{
rec(i);
found=1;
}
if(found==0)
break;
}
}
//레코드 출력함수
void rec(int re)
{
printf(%s%s%s%s\n, st[re].n, st[re].s, st[re].a, st[re].tel);
}
//종료
void quit(void)
{
printf(인명관리를 더 이상하지 않겠습니까? (9 : 종료 / 1 : 계속));
}
-
나나
count 전역변수는 메모리에 올라가자마자 0으로 초기화되지 않나요?
-
블1랙캣
혹시 버퍼가 꽉차서가 그런건가..
이름 입력하기 전에 fflush(stdio); 넣어보세요