본문으로 바로가기

CHAPTER 4 ::

프로그래밍 연습


1. 표준입력으로 두 정수를 입력 받아 합과 평균을 구하여 출력하는 프로그램을 작성하시오.

합은 정수로, 평균은 실수로 출력
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void)
{
	int num1, num2, sum;
	double avg;

	printf("첫 번째 정수를 입력하시오. >> ");
	scanf("%d", &num1);
	printf("두 번째 정수를 입력하시오. >> ");
	scanf("%d", &num2);

	// 합을 구합니다.
	sum = num1 + num2;

	// 평균을 구합니다.
	avg = (double) sum / 2;

	printf("두 수의 합: %d\n", sum);
	printf("두 수의 평균: %f\n", avg);

	return 0;
}


2. 표준입력으로 두 실수를 입력 받아 합과 평균을 구하여 출력하는 프로그램을 작성하시오.

합과 평균 모두 실수로 출력
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void)
{
	double num1, num2, sum, avg;

	printf("첫 번째 실수를 입력하시오. >> ");
	scanf("%lf", &num1);
	printf("두 번째 실수를 입력하시오. >> ");
	scanf("%lf", &num2);

	// 합을 구합니다.
	sum = num1 + num2;

	// 평균을 구합니다.
	avg = sum / 2;

	printf("두 수의 합: %f\n", sum);
	printf("두 수의 평균: %f\n", avg);

	return 0;
}


3. 위 프로그램에서 다음 조건을 만족하는 프로그램으로 수정하여 작성하시오.

입력 받은 두 실수를 모두 정수로 변환하여 합과 평균 모두 실수로 출력
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void)
{
	double num1, num2, sum, avg;

	printf("첫 번째 실수를 입력하시오. >> ");
	scanf("%lf", &num1);
	printf("두 번째 실수를 입력하시오. >> ");
	scanf("%lf", &num2);

	num1 = (int)num1;
	num2 = (int)num2;

	// 합을 구합니다.
	sum = num1 + num2;

	// 평균을 구합니다.
	avg = sum / 2;

	printf("두 수의 합: %f\n", sum);
	printf("두 수의 평균: %f\n", avg);

	return 0;
}


4. 표준입력으로 두 정수를 입력받아 큰 수를 작은 수로 나눈 몫과 나머지를 각각 출력하는 프로그램을 작성하시오.

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void)
{
	int num1, num2, max, min;

	printf("첫 번째 실수를 입력하시오. >> ");
	scanf("%d", &num1);
	printf("두 번째 실수를 입력하시오. >> ");
	scanf("%d", &num2);

	num1 > num2 ? (max = num1) : (max = num2);
	num1 < num2 ? (min = num1) : (min = num2);

	puts("");
	printf("%d / %d = %d ... %d\n", max, min, max / min, max % min);

	return 0;
}


5. 무게의 단위인 킬로그램(kg)을 소수로 입력 받아 파운드(pound)로 계산하여 소수점 3자리까지 출력하는 프로그램을 작성하시오.

1파운드(pound)는 0.453592킬로그램(kg)
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void)
{
	double 무게;

	printf("무게를 소수로 입력해주세요. (단위: kg) >> ");
	scanf("%lf", &무게);

	printf("%f 킬로그램은 %.3f 파운드입니다.\n", 무게, 무게 / 0.453502);

	return 0;
}


6. 길이의 단위인 센티미터(cm)를 소수로 입력 받아 피트(feet)로 계산하여 소수점 3자리까지 출력하는 프로그램을 작성하시오.

1피트(feet)는 30.48센티미터(cm)
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void)
{
	double 길이;

	printf("길이를 소수로 입력해주세요.(단위: cm) >> ");
	scanf("%lf", &길이);

	printf("%f 센티미터는 %.3f 피트입니다.\n", 길이, 길이 / 30.48);

	return 0;
}


7. 반지름이 7.58인 구의 체적과 표면적을 구하는 프로그램을 작성하시오.

º 구 체적(V): (4.0/3.0) * 3.14(원주율) * 반지름^3

º 구표면적(S): 4.0 * 3.14(원주율) * 반지름^2
#include <stdio.h>

int main(void)
{
	const double PI = 3.14;
	double r = 7.58;
	double volume, surface; // volume : 구의체적, surface : 구의 표면적

	printf("구의 표면적과 체적을 구합니다 . . .\n\n");

	volume = (4.0 / 3.0) * PI * r * r * r; // 구의 체적
	surface = 4 * PI * r * r; // 구의 표면적

	printf("구의 체적은 %.2f 입니다.\n", volume);
	printf("구의 표면적은 %.2f 입니다.\n", surface);

	return 0;
}


8. 위 프로그램에서 다음 조건을 만족하는 프로그램으로 수정하여 작성하시오.

구의 반지름을 표준입력으로 처리
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void)
{
	const double PI = 3.14;
	double r;
	double volume, surface; // volume : 구의체적, surface : 구의 표면적

	printf("구의 표면적과 체적을 구합니다 . . .\n\n");
	printf("구의 반지름을 입력해 주세요 >> ");
	scanf("%lf", &r);

	volume = (4.0 / 3.0) * PI * r * r * r; // 구의 체적
	surface = 4 * PI * r * r; // 구의 표면적

	printf("구의 체적은 %.2f 입니다.\n", volume);
	printf("구의 표면적은 %.2f 입니다.\n", surface);

	return 0;
}


9. 정수인 천만 이하의 한 수를 입력 받아 우리가 사용하는 단위인 만, , , , 일 단위로 출력하는 프로그램을 작성하시오.

즉 입력이 2347653이면 "234만 7천 6백 5십 3입니다." 로 출력
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void)
{
	int 정수;

	printf("천만 이하의 하나의 정수를 입력해주세요. >> ");
	scanf("%d", &정수);

	printf("입력한 정수 %d는 ", 정수);
	printf("%d만 ", 정수 / 10000);
	printf("%d천 ", 정수 % 10000 / 1000);
	printf("%d백 ", 정수 % 1000 / 100);
	printf("%d십 ", 정수 % 100 / 10);
	printf("%d입니다.\n", 정수 % 10);

	return 0;
}


10. 조건연산자를 이용하여 임의의 달을 입력받아 이 달이 상반기이면 상반기입니다.”를 하반기이면 하반기입니다.”를 출력하는 프로그램을 작성하시오.

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void)
{
	int 月;

	printf("임의의 달을 입력해주세요. >> ");
	scanf("%d", &月);
	printf("%d월은 ", 月);
	printf("%s입니다. \n", 月 > 6 ? "하반기" : "상반기");

	return 0;
}