[문제]
한 층에 2세대가 사는 4층 아파트가 있다. 각 층의 1, 2호에 사는 인원을 입력 받아 각 층의 합계를 출력하는 프로그램을 작성하라.
(단, 1차원 배열만 쓰는 경우와 2차원 배열을 쓰는 경우 둘 다 각각 프로그램을 작성할 것)
[실행결과]
1층 1호 인구수: 2
1층 2호 인구수: 4
2층 1호 인구수: 3
2층 2호 인구수: 5
3층 1호 인구수: 2
3층 2호 인구수: 6
4층 1호 인구수: 4
4층 2호 인구수: 3
1층 인구수: 6
2층 인구수: 8
3층 인구수: 8
4층 인구수: 7
[코드1: 1차원 배열 사용]
#include<stdio.h>
int main(void)
{
int i;
int floor = 1, cnt = 1;
int arr[8];
int sum[4] = { 0 };
for (i = 0; i < 8; i++)
{
if (i / 2 == 0)
{
printf("%d층 %d호 인구수: ", floor, cnt++);
scanf_s("%d", &arr[i]);
}
else
{
printf("%d층 %d호 인구수: ", floor, cnt++);
scanf_s("%d", &arr[i]);
}
switch (floor) // 층별 인구수 합
{
case 1:
sum[i / 2] += arr[i];
break;
case 2:
sum[i / 2] += arr[i];
break;
case 3:
sum[i / 2] += arr[i];
break;
case 4:
sum[i / 2] += arr[i];
break;
}
if (cnt == 3)
{
floor++;
cnt = 1;
}
}
for (i = 0; i < 4; i++)
printf("%d층 인구수: %d\n", i + 1, sum[i]);
return 0;
}
[코드2: 2차원 배열 사용]
#include<stdio.h>
int main(void)
{
int i, j;
int arr[4][2];
for (i = 0; i < 4; i++)
{
for (j = 0; j < 2; j++)
{
printf("%d층 %d호 인구수: ", i+1, j+1);
scanf_s("%d", &arr[i][j]);
}
}
for (i = 0; i < 4; i++)
printf("%d층 인구수: %d\n", i + 1, arr[i][0] + arr[i][1]);
return 0;
}
<참고>
윤성우의 열혈 C 프로그래밍
'C 언어 > 연습문제' 카테고리의 다른 글
C언어 연습문제24 (0) | 2021.11.26 |
---|---|
C언어 연습문제23 (0) | 2021.11.24 |
C언어 연습문제21 (0) | 2021.11.18 |
C언어 연습문제20 (0) | 2021.11.18 |
C언어 연습문제19 (0) | 2021.11.16 |