성적관리3 질문이요.
리라
질문 제목 : 최대 입력할수 있는 학생수는 50입니다.input 함수에서50명까지 반복하지만 end가 나와버리면 입력을 중지합니다.
그리고 출력시 입력받은 학생들만 출력 하고싶습니다.
그리고 문제는 입력은 받아지는데 쓰레기값으로 출력됩니다.
수정부탁드립니다.질문 내용 :
#include stdio.h
#include string.h
#define max_size 50
typedef struct arr
{
char name[12];
int kor, eng, math, sci, tot;
double ave;
}score;
void input(score* a);
void output(score* a);
int main(void)
{
int manu;
score arr[max_size];
while(1){
printf(##### 성적 관리 프로그램 #####\n);
printf(1) 성적 입력\n);
printf(2) 성적 출력\n);
printf(3) 성적 검색\n);
printf(4) 종료\n);
printf(메뉴를 선택하세요: ); scanf(%d, &manu);
if( manu == 1)
{
input(arr);
}
else if ( manu == 2 )
{
output(arr);
}
else if( manu == 4)
{
return 0;
}
}
return 0;
}
void input(score *p)
{
int i;
for ( i=0; i max_size; i++){
printf(성명: (종료 : end) : );
gets(p[i].name);
fflush(stdin);
if(strcmp(p[i].name,end) == 0 ) {
return ;
}
printf(국어: ); scanf(%d, &p[i].kor);
printf(영어: ); scanf(%d, &p[i].eng);
printf(수학: ); scanf(%d, &p[i].math);
printf(과학: ); scanf(%d, &p[i].sci);
p[i].tot=p[i].kor + p[i].eng + p[i].math + p[i].sci;
p[i].ave= p[i].tot/4;
}
return ;
}
void output(score *p)
{
int i;
for(i=0; imax_size; i++)
printf(%s\t %d\t %d\t %d\t %d\t %d\t,
p[i].name, p[i].kor, p[i].eng, p[i].math, p[i].sci);
return ;
}
-
라임나무
vs6이라 가능한듯ㅋㅋㅋㅋㅋ
-
Elfin
SCORE arr[MAX_SIZE];
이부분... --;
구조체형 배열을 선언하는데 배열명이 타입딥하기전 구조체명과 똑같은 변수명..
에러가 안나는게 전 더신기..