개발/책

[쉽게 풀어쓴 C언어 Express] 6장 Programming

Hyunsun 2021. 10. 6. 21:42
728x90
쉽게 풀어쓴 C언어 EXPRESS 개정 3판

 

p.258 CHAPTER 6 조건문

 

1. 키보드에서 하나의 문자를 읽어서 모음과 자음을 구분하는 프로그램을 작성하여 보자. 단 switch 문을 사용한다.

 

코드

#include<stdio.h>

int main(void) 
{
	char c;
	printf("문자를 입력하시오: ");
	scanf("%c", &c);

	switch (c) {
		case 'a':
		case 'e':
		case 'i':
		case 'o':
		case 'u':
			printf("모음입니다.\n");
			break;
		default:
			printf("자음입니다.\n");
			break;
	}

	return 0;
}

 

결과

 

2. 사용자로부터 2개의 정수를 받아서 첫 번째 정수가 두 번째 정수로 나누어 떨어지는 지를 검사하는 프로그램을 작성하라. 즉 약수인지를 검사한다.

 

코드

#include<stdio.h>

int main(void)
{
	int a, b;

	printf("정수를 입력하시오: ");
	scanf("%d", &a);

	printf("정수를 입력하시오: ");
	scanf("%d", &b);

	if (a % b == 0)
		printf("약수입니다.\n");
	else
		printf("약수가 아닙니다.\n");

	return 0;
}

 

결과

 

3. 사용자로부터 3개의 정수를 읽어 들인 후에 if-else 문을 사용하여 가장 작은 값을 결정하는 프로그램을 작성하라.

 

코드

#include<stdio.h>

int main(void) 
{
	int x, y, z;

	printf("3개의 정수를 입력하시오: ");
	scanf("%d %d %d", &x, &y, &z);

	printf("제일 작은 정수는 ");

	if (x < y) {
		if (x < z)
			printf("%d", x);
		else
			printf("%d", z);
	}
	else {
		if (y < z)
			printf("%d", y);
		else
			printf("%d", z);
	}
	printf("입니다\n");

	return 0;
}

 

결과

 

4. 컴퓨터와 가위, 바위, 보 게임을 하는 프로그램을 작성하라. 컴퓨터는 사용자에게 알리지 않고 가위, 바위, 보 중에서 임의로 하나를 선택한다. 사용자는 프로그램의 입력 안내 메세지에 따라서, 3개중에서 하나를 선택하게 된다. 사용자의 선택이 끝나면 컴퓨터는 누가 무엇을 선택하였고 누가 이겼는지, 비겼는지를 알려준다.

 

코드

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

int main(void) 
{
	int u, c;

	srand((int)time(NULL));

	printf("선택하시오(1: 가위 2: 바위 3: 보): ");
	scanf("%d", &u);

	c = rand() % 3 + 1;

	if (u == 1) {
		if (c == 1)
			printf("비겼음\n");
		else if (c == 2)
			printf("컴퓨터 2: 컴퓨터가 이겼음\n");
		else
			printf("컴퓨터 3: 사용자가 이겼음\n");
	}

	else if (u == 2) {
		if (c == 1)
			printf("컴퓨터 1: 사용자가 이겼음\n");
		else if (c == 2)
			printf("비겼음\n");
		else
			printf("컴퓨터 3: 컴퓨터가 이겼음\n");
	}

	else if (u == 3) {
		if (c == 1)
			printf("컴퓨터 1: 컴퓨터가 이겼음\n");
		else if (c == 2)
			printf("컴퓨터 2: 사용자가 이겼음\n");
		else
			printf("비겼음\n");
	}
	return 0;
}

 

결과

 

5. 놀이공원에서 롤러코스터에 타려면 키가 140cm 이상이고, 나이가 10살 이상이어야 한다고 가정하자. 사용자에게 키와 나이를 질문한 후에 "타도 좋습니다" 또는 "죄송합니다" 를 출력하는 프로그램을 작성하여 보자.

 

코드

#include<stdio.h>

int main(void) 
{
	int age;
	double cm;

	printf("키를 입력하시오(cm): ");
	scanf("%lf", &cm);

	printf("나이를 입력하시오: ");
	scanf("%d", &age);

	if (cm >= 140 && age >= 10)
		printf("타도 좋습니다.\n");
	else
		printf("죄송합니다.\n");

	return 0;
}

 

결과

 

6. 사용자로부터 몇 월인지를 정수로 입력받아서 Jan와 같은 영어단어로 출력하는 프로그램을 작성하라.

 

코드

#include<stdio.h>

int main(void) 
{
	int month;

	printf("월번호를 입력하시오: ");
	scanf("%d", &month);

	switch (month) {
		case 1:
			printf("Jan\n");
			break;
		case 2:
			printf("Feb\n");
			break;
		case 3:
			printf("Mar\n");
			break;
		case 4:
			printf("Apr\n");
			break;
		case 5:
			printf("May\n");
			break;
		case 6:
			printf("Jun\n");
			break;
		case 7:
			printf("Jul\n");
			break;
		case 8:
			printf("Aug\n");
			break;
		case 9:
			printf("Sep\n");
			break;
		case 10:
			printf("Oct\n");
			break;
		case 11:
			printf("Nov\n");
			break;
		case 12:
			printf("Dec\n");
			break;
	}
	return 0;
}

 

결과

 

7. 사용자로부터 키를 입력 받아서 표준 체중을 계산한 후에 사용자의 체중과 비교하여 저체중인지, 표준인지, 과체중인지를 판단하는 프로그램을 작성하라. 표준 체중 계산식은 다음을 사용하라.

  • 표준체중 = ( 키 – 100 ) * 0.9

 

코드

#include<stdio.h>

int main(void) 
{
	float weight, height, avg;

	printf("체중과 키를 입력하시오: ");
	scanf("%f %f", &weight, &height);

	avg = (height - 100) * 0.9;

	if (avg < weight)
		printf("과체중입니다.\n");
	else if (avg == weight)
		printf("표준입니다.\n");
	else
		printf("저체중입니다.\n");

	return 0;
}

 

결과

 

8. 놀이 공원의 자유이용권의 가격을 계산하는 프로그램을 작성하여 보자. 입장료는 다음과 같은 조건으로 결정된다. 현재 시간과 사용자의 나이를 입력받아서 지불하여야 하는 요금을 화면에 출력한다.

 

코드

#include<stdio.h>

int main(void) 
{
	int time, age;

	printf("현재 시간과 나이를 입력하시오(시간, 나이): ");
	scanf("%d %d", &time, &age);

	if (time < 17) {
		if (age < 13 || 65 <= age)
			printf("요금은 25000입니다.\n");
		else
			printf("요금은 34000입니다.\n");
	}
	else
		printf("요금은 10000입니다.\n");

	return 0;
}

 

결과

 

9. 다음과 같이 정의되는 함수의 함수값을 계산하여 보자. 사용자로부터 x값을 입력받아서 함수값을 계산하여 화면에 출력한다. x는 실수이다.

 

코드

#include<stdio.h>

int main(void) 
{
	float x, value;

	printf("x의 값을 입력하시오: ");
	scanf("%f", &x);

	if (x <= 0)
		value = x * x - 9 * x + 2;
	else
		value = 7 * x + 2;

	printf("f(x)의 값은 %f\n", value);

	return 0;
}

 

결과

 

10. (x, y) 좌표를 입력받아서 좌표가 속하는 사분면을 화면에 출력하는 프로그램을 작성하라.

 

코드

#include<stdio.h>

int main(void) 
{
	float x, y;

	printf("좌표(x, y): ");
	scanf("%f %f", &x, &y);

	if (0 < x && 0 < y)
		printf("1사분면\n");

	else if (0 > x && 0 < y)
		printf("2사분면\n");

	else if (0 > x && 0 > y)
		printf("3사분면\n");

	else
		printf("4사분면\n");

	return 0;
}

 

결과

 

11. 사용자로부터 하나의 문자를 입력받아서 문자가 'R'이나 'r'이면 "Rectangle"이라고 출력한다. 'T'이거나 't'이면 "Triangle", 'C'이거나 'c'이면 "Circle"이라고 출력하는 프로그램을 작성한다. 그 외의 문자가 들어오면 "Uknown"이라고 출력한다.

 

코드

#include<stdio.h>

int main(void) 
{
	char c;

	printf("문자를 입력하시오: ");
	scanf("%c", &c);

	if (c == 'R' || c == 'r')
		printf("Rectangle\n");
	else if (c == 'T' || c == 't')
		printf("Triangle\n");
	else if (c == 'C' || c == 'c')
		printf("Circle\n");
	else
		printf("Unknown\n");

	return 0;
}

 

결과

728x90