성적내기..
혜윤
성적 프로그램..배열을 이용한 이름, 성적 산출하기질문 내용 : c언어 배우는 초보자인데..이번에 배열 공부하면서 문제가 있길래 풀어보는데
2명의 학생이름과 국 영 수 점수 입력 받고 총점과 평균 구하는식인데..
점수입력하고나서 출력 시 end가 떠버리네요 ㅠㅠ
#include stdio.h
int main(void)
{
char name[10];
int i, kor[10], math[10], eng[10];
int total[10]={0};
double ave[10]={0};
printf( 10명의 학생 이름과 성적을 입력해주세요. \n\n);
for(i=0;i2;i++)
{
printf( %d번째 학생의 이름을 입력하세요 : , i+1);
scanf(%s, &name[i]);
printf( 국어점수는 ? );
scanf(%d, &kor[i]);
printf( 수학점수는 ? );
scanf(%d, &math[i]);
printf( 영어점수는 ? );
scanf(%d, &eng[i]);
total[i]=kor[i]+math[i]+eng[i];
ave[i]=total[i]/3.0;
}
printf( \n\n 결과 출력 \n\n );
printf( 이름 | 국어 | 수학 | 영어 | 총점 | 평 균 | \n);
for(i=0;i2;i++)
{
printf( | %s | %4d | %4d | %4d | %4d | %0.2f |\n, name[i], kor[i], math[i], eng[i], total[i], ave[i]);
}
}
-
아이처럼 2023-06-28
char name[10]은 1바이트 크기를 가지는 char형 공간을 연속적으로 10개를 할당한다는것입니다.
name[0],name[1],name[2] 이것들은 전부다 1바이트를 저장공간을 가지고있는 char형 변수죠.
1바이트 공간은 이름을 저장하기에는 너무나도 적은공간입니다. 잘해봐야 문자 하나를 입력할정도죠.
그러니 선언할때 name[10][20]이런식으로 이중배열을 선언 하시면 됩니다.
char name[10][20]의 뜻은 20개의 연속된 공간을 -
딥레드 2023-06-28
아무래도 배열 name 에 문제가있네요