본문 바로가기

프로그래밍 언어 문제/C

[C언어] 연습문제8

[문제]

열거형은 사용하여 Do, Re, Mi, Fa, So, La, Ti를 정의하고 아래와 같이 해당하는 음계에 문자열이 출력되도록 프로그램을 작성하시오.

Do에는 "도는 하얀 도라지"
Re에는 "레는 둥근 레코드"
Mi에는 "미는 파란 미나리"
Fa에는 "파는 예쁜 파랑새"
So에는 "솔은 작은 솔방울"
La에는 "라는 라디오고요~"
Ti에는 "시는 졸졸 시냇물"

조건1) 열거형 변수를 입력 받아 음계가 출력되는 sound() 함수를 만들 것
조건2) 열거형 변수를 typedef로 정의할 것

 

[실행결과]

도는 하얀 도라지
레는 둥근 레코드
미는 파란 미나리
파는 예쁜 파랑새
솔은 작은 솔방울
라는 라디오고요~
시는 졸졸 시냇물

 

[수정할 코드]

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef enum eSyllable_tag {
	Do,
	Re,
	Mi,
	Fa,
	So,
	La,
	Ti
}eSyllable;

void sound(eSyllable tone);

int main(void)
{
	eSyllable tone;

	for (int i = Do; i <= Ti; i++) sound(i);

	return 0;
}

void sound(eSyllable tone)
{
	switch (tone) {
	case Do:
		puts("도는 하얀 도라지");
		break;
	case Re:
		puts("레는 둥근 레코드");
		break;
	case Mi:
		puts("미는 파란 미나리");
		break;
	case Fa:
		puts("파는 예쁜 파랑새");
		break;
	case So:
		puts("솔은 작은 솔방울");
		break;
	case La:
		puts("라는 라디오고요~");
		break;
	case Ti:
		puts("시는 졸졸 시냇물");
		break;
	default:
		break;
	}
}

[코드]

#include<stdio.h>

typedef enum syllable
{
	Do = 1, Re, Mi, Fa, So, La, Ti
}Syllable;

void Sound(Syllable sy)
{
	switch (sy)
	{
	case Do:
		puts("도는 하얀 도라지");	return;
	case Re:
		puts("레는 둥근 레코드");	return;
	case Mi:
		puts("미는 파란 미나리");	return;
	case Fa:
		puts("파는 예쁜 파랑새");	return;
	case So:
		puts("솔은 작은 솔방울");	return;
	case La:
		puts("라는 라디오고요~");	return;
	case Ti:
		puts("시는 졸졸 시냇물");	return;
	}
}
int main(void)
{
	Syllable tone;

	for (tone = Do; tone <= Ti; tone++)
		Sound(tone);

	return 0;
}

 

<참고>

윤성우의 열혈 C 프로그래밍

'프로그래밍 언어 문제 > C' 카테고리의 다른 글

[C언어] 연습문제5  (0) 2022.04.20
[C언어] 연습문제6  (0) 2022.04.16
[C언어] 연습문제7  (0) 2022.04.15
[C언어] 연습문제9  (0) 2022.04.13
[C언어] 연습문제10  (0) 2022.04.08