본문 바로가기
작업/Programming

Perfect C 6장 프로그래밍 연습 2, 3, 7번 + BMI 프로그램

 

 

Perfect C 6장 프로그래밍 연습은 여러 블로깅으로 정리했습니다.

1번 문제에 대한 참고가 필요하시면 아래의 블로깅을 확인하시면 됩니다.

 

2020/04/21 - [작업/C 언어] - C언어 평면의 사분면 조건문으로 만들어 보기

 

C언어 평면의 사분면 조건문으로 만들어 보기

Perfect C 도서의 6장은 조건 문법에 대해 소개하고 있습니다. 프로그래밍 연습 1번 문제에서 각도에 맞는 평면의 사분면 값을 출력하라고 했습니다. 이 문제를 통해 6장에서 배운 조건을 모두 활용해서 코딩을 해..

zifmfmphantom.tistory.com

 

 

이번 글에는 2, 3, 7번에 대한 코딩을 해보았습니다.

그리고 현역 판정 기준을 적용해서 BMI 프로그램을 만들어 보았습니다.

 

 

재미로 활용해 보시면 좋을 것 같습니다 :)

 


2번. 두 실수의 연산 수행하는 프로그램.

 

 

입력은 두 실수와 연산에 해당하는 번호입니다.

 

 

1(+), 2(-), 3(*), 4(/) 형태로 구성하라고 되어있네요.

 

 

연산의 종류가 간단한 수로 되어있기 때문에 switch 문장을 사용하는 것이 적절해 보입니다.

출력은 각 연산을 수행한 결과들을 나타내도록 했습니다. 

 

//문제 2
	double num1, num2;
	int cal;

	printf("두 실수 입력 : ");
	scanf("%lf %lf", &num1, &num2);
	printf("연산종류 번호선택 1(+), 2(-), 3(*), 4(/) : ");
	scanf("%d", &cal);

	switch (cal) {
	case 1:
		printf("%.2lf + %.2lf = %.2lf\n", num1, num2, num1 + num2); // 더하기
		break;
	case 2:
		printf("%.2lf - %.2lf = %.2lf\n", num1, num2, num1 - num2); // 빼기
		break;
	case 3:
		printf("%.2lf * %.2lf = %.2lf\n", num1, num2, num1 * num2); // 곱하기
		break;
	case 4:
		printf("%.2lf / %.2lf = %.2lf\n", num1, num2, num1 / num2); // 나누기
		break;
	}

 

 


3번. BMI 측정 문제입니다.

 

입력은 kg기준의 몸무게와 cm기준의 키로 합니다.

연산은 m로 하지만 사용자들은 cm를 무의식적으로 사용하기 때문에 입력은 cm로 받았습니다.

 

 

18.5 미만 = 저체중

18.5 ~ 22.9 = 정상

23 ~ 24.9 = 과체중

25 ~ 29.9 = 비만

30 ~ 34.9 = 고도비만

35 ~ = 초고도비만

 

 

BMI 코드와 현역 BMI 기준을 적용하여 프로그램을 만들었습니다.

 

 

현행 규칙에 따르면 키 161cm 이상∼204cm 미만일 때,

BMI가 14∼16.9이거나 33∼49.9면 4급 보충역 판정을 받는다고 합니다.

 

5번 반복 수행할 수 있도록 만들었으니 궁금하신 분들은 해 보세요 ㅋㅋ..;;

 

//문제 3
	double kg, cm, bmi;
	printf("몸무게(kg)와 키(cm)를 순서대로 입력하세요 : ");
	scanf("%lf %lf", &kg, &cm);

	cm /= 100; //m 단위로 변경
	bmi = kg / (cm*cm); //bmi 계산 결과 저장

	if (bmi > 34)
		printf("BMI 값 = %.1lf, '초고도비만'입니다.\n", bmi);
	else if (bmi > 29)
		printf("BMI 값 = %.1lf, '고도비만'입니다.\n", bmi);
	else if (bmi > 24)
		printf("BMI 값 = %.1lf, '비만'입니다.\n", bmi);
	else if (bmi > 22)
		printf("BMI 값 = %.1lf, '과체중'입니다.\n", bmi);
	else if (bmi > 18.4)
		printf("BMI 값 = %.1lf, '정상'입니다.\n", bmi);
	else
		printf("BMI 값 = %.1lf, '저체중'입니다.\n", bmi);
        
        

BMI 프로그램.exe
0.01MB

 


7번. 소득금액에 따른 세금을 계산하는 문제.

 

 

위의 연산, BMI처럼 각 경우에 맞는 식을 세우면 간단히 해결할 수 있습니다.

 

 

2000만 원인 경우 1200만 원을 넘기 때문에 세금 72만 원을 붙이고

나머지(2000-1200) 800만 원에 세율(15% = 0.15)을 곱한 값을 더합니다.

이는 계산식 72 + (800*0.15)와 같으며 이 결과가 총세금입니다.

 

//문제 7
	int won; //만원 단위 값
	int tax; //세금 값

	printf("종합소득액 입력(만원기준) : ");
	scanf("%d", &won);

	if (won > 30000) { //소득이 3억 초과한 경우
		tax = 9010 + ((won - 30000)*0.38); // 9천10만원 + 초과세율
		printf("소득액 %d만원의 세금은 총 %d만원 입니다.\n\n", won, tax);
	}
	else if (won > 8800) { //소득이 8800만 초과한 경우
		tax = 1590 + ((won - 8800)*0.35);
		printf("소득액 %d만원의 세금은 총 %d만원 입니다.\n\n", won, tax);
	}
	else if (won > 4600) { //소득이 4600만 초과한 경우
		tax = 582 + ((won - 4600)*0.24);
		printf("소득액 %d만원의 세금은 총 %d만원 입니다.\n\n", won, tax);
	}
	else if (won > 1200) { //소득이 1200만 초과한 경우
		tax = 72 + ((won - 1200)*0.15); // 9천10만원 + 초과세율
		printf("소득액 %d만원의 세금은 총 %d만원 입니다.\n\n", won, tax);
	}
	else { //소득이 1200이하
		tax = won * 0.06; // 9천10만원 + 초과세율
		printf("소득액 %d만원의 세금은 총 %d만원 입니다.\n\n", won, tax);
	}
    
    

 

 

-끝-