[정답] 디딤돌 C언어 46. 배열 선언문
[정답] 46. 배열 선언문
◈ 기본 연습
1. 한 학생의 국어 성적, 영어 성적, 수학 성적을 관리하는 배열을 선언하세요.
그리고 초기값으로 국어 성적은 80, 영어 성적은 60, 수학 성적은 90으로 지정하고 각 원소의 값을 출력하세요.
답:
//1. 한 학생의 국어 성적, 영어 성적, 수학 성적을 관리하는 배열을 선언하세요.
//그리고 초기값으로 국어 성적은 80, 영어 성적은 60, 수학 성적은 90으로 지정하고
//각 원소의 값을 출력하세요.
#include <stdio.h>
enum SubjectType
{
KOREAN, ENGLISH, MATH,MAX_SUBJECT
};
int main(void)
{
int scores[MAX_SUBJECT] = { 80,60,90 };
const char *titles[MAX_SUBJECT] = { "국어","영어","수학" };
int si;
for (si = 0; si < MAX_SUBJECT; si++)
{
printf("%s과목 성적:%3d\n", titles[si], scores[si]);
}
return 0;
}
2. 다음의 출력 결과를 예측하시오.
#include <stdio.h>
int main()
{
int arr[10]={1};
int index = 0;
for(index = 0; index<10; index++)
{
printf("%d\n",arr[index]);
}
return 0;
}
답:
1
0
0
0
0
0
0
0
0
0
3. 세 학생의 국어 성적, 영어 성적, 수학 성적을 관리하는 배열을 선언하세요.
그리고 세 명의 성적을 입력받아 과목별 합계와 평균을 출력하시오.
그리고 학생별로 합계와 평균을 출력하시오.
답:
//세 학생의 국어 성적, 영어 성적, 수학 성적을 관리하는 배열을 선언
//그리고 세 명의 성적을 입력받아 과목별 합계와 평균을 출력
//그리고 학생별로 합계와 평균을 출력
#include <stdio.h>
#define MAX_STUDENT 3
enum SubjectType
{
KOREAN, ENGLISH, MATH,
MAX_SUBJECT
};
int main(void)
{
int scores[MAX_STUDENT][MAX_SUBJECT];
const char *titles[MAX_SUBJECT] = { "국어","영어","수학" };
int ni,si;
int sum;
for (ni = 0; ni < MAX_STUDENT; ni++)
{
printf("%d번째 학생 성적 입력\n", ni+1);
for (si = 0; si < MAX_SUBJECT;si++)
{
printf("%s 성적 입력:", titles[si]);
scanf_s("%d", scores[ni] +
si);
}
}
for (ni = 0; ni < MAX_STUDENT; ni++)
{
for (sum = 0, si = 0; si< MAX_SUBJECT; si++)
{
sum += scores[ni][si];
}
printf("%d번째 학생 성적 합계%d , 평균:%.2f\n", ni+1, sum, sum / (double)MAX_SUBJECT);
}
return 0;
}