자료/C언어 스케치
[C 언어 스케치] 프로그래밍 연습 4장 문제 풀이, 솔루션 (1)
PSY_CHOPATH
2020. 6. 30. 10:16
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;
}