본문 바로가기

C 언어/연습문제

C언어 연습문제22

[문제]

한 층에 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