배열
동일한 데이터타입을 메모리상에 순차적으로 나열한다.
배열 사용 하는 방법
int arr[10]; (arr[0] ~ arr[9])
배열을 입력하지 않았을 경우.
int arr2[2][3] = {1, 2, 3,};
// 배열을 선언과 동시에 초기화를 할 경우 전부 다 하지 않은 비워진 값은 초기 값 0으로 등록이 된다.
#define _CRT_SECURE_NO_WARINGS
#include<stdio.h>
#include<string.h>
int total(int a, int b, int c);
float avg(int a, int b, int c);
int main()
{
int select = 0;
int num1 = 0;
int num2 = 0;
int mat = 0, kor =0, eng =0;
//한 반당 3명, 3개의 반이 있고, 한 명당 국, 영, 수, 총점, 평균
int student[3][3][3] = { 0, };
//무한 루프
do {
printf("1. 입력 / 2. 전체 출력 / 0. 종료 \n");
rewind(stdin);
scanf("%d", &select);
rewind(stdin);
switch (select)
{
case 1:
printf("반 등록 (1 ~ 3) \n");
scanf("%d", &num1);
printf("%d", num1);
rewind(stdin);
printf("학생 등록 (1 ~ 3)\n");
scanf("%d", &num2);
rewind(stdin);
printf("성적 등록 \n");
printf("국어 점수 : ");
scanf("%d", &kor);
rewind(stdin);
printf("영어 점수 : ");
scanf("%d", &eng);
rewind(stdin);
printf("수학 점수 : ");
scanf("%d", &mat);
rewind(stdin);
student[num1-1][num2-1][0] = kor;
student[num1-1][num2-1][1] = eng;
student[num1-1][num2-1][2] = mat;
break;
case 2:
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
if (avg(student[i][j][0], student[i][j][1], student[i][j][2]) != 0)
{
printf("%d반 %d번 / 국어 점수 : %d, 영어 점수 : %d, 수학 점수 : %d, 총점 : %d, 평균 : %2f \n", i+1, j+1, student[i][j][0], student[i][j][1], student[i][j][2], total(student[i][j][0], student[i][j][1], student[i][j][2]), avg(student[i][j][0], student[i][j][1], student[i][j][2]));
}
}
}
break;
default:
break;
}
} while (1);
return 0;
}
int total(int a, int b, int c)
{
return a + b + c;
}
float avg(int a, int b, int c)
{
return (a + b + c) / 3;
}
반응형