C/perpect C
5장 연습문제
옥식
2021. 12. 28. 21:11
01. 표준입력을 두 정수를 입력받아 큰 수를 작은 수로 나눈 몫과 나머지를 각각 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int num1, num2;
printf("임의의 정수 입력1 : ");
scanf("%d", &num1);
printf("임의의 정수 입력2 : ");
scanf("%d", &num2);
printf("몫은 %d이고 나머지는 %d입니다.", num1 / num2, num1 % num2);
return 0;
}
02. 일자를 정수로 입력받아 년, 월 일 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int day;
printf("일자 입력: ");
scanf("%d", &day);
printf("입력한 날짜: %d\n", day);
int year = day / 365;
int rest = day % 365;
int mon = rest / 30;
rest %= 30;
printf("%d년 %d월 %d일\n", year, mon, rest);
return 0;
}
03. 센티미터를 피트로 계산하여 소수점 3자리까지 출력하는 프로그램
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define FEET 30.48
int main(void)
{
double cm;
printf("길이를 센티미터로 입력 : ");
scanf("%lf", &cm);
printf("%.3lf 센티미터: %.3lf 피트", cm, (double)cm / FEET);
return 0;
}
04. 구의 체적과 표면적을 구하는 프로그램
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
double r;
scanf("%lf", &r);
double v = (4.0 / 3) * 3.14 * r * r * r; // 4/3으로 하면 몫인 1만 곱해져서 결과가 달라진다.
double s = 4 * 3.14 * r * r;
printf("구의 체적은 %10.3lf 입니다.\n", v);
printf("구의 표면적은 %10.3lf 입니다.\n", s);
return 0;
}
05. 조건연산자를 이용하여 세 수중 가장 큰 수를 구하는 프로그램
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int a, b, c;
printf("세 개의 정수 입력: ");
scanf("%d %d %d", &a, &b, &c);
int max;
max = (a > b) ? a : b;
max = (max > b) ? a : b;
printf("가장 큰 수: %d", max);
return 0;
}
06.키와 몸무게를 입력받아 정상인지 비정상인지 출력
조건 연산자로 해보려 했는데 오류남
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
double tall, weight;
printf("키 입력: ");
scanf("%lf", &tall);
printf("몸무게 입력: ");
scanf("%lf", &weight);
double stat;
stat = (tall - 100) * 0.9;
printf("당신은 %c 입니다.", (weight <= stat)?"정상":"비만"); //오류남
return 0;
}
그래서 if else로 함
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
double tall, weight;
printf("키 입력: ");
scanf("%lf", &tall);
printf("몸무게 입력: ");
scanf("%lf", &weight);
double stat;
stat = (tall - 100) * 0.9;
if (weight <= stat)
printf("당신은 정상입니다.");
else
printf("당신은 비만입니다.");
return 0;
}
07. 예치기간을 입력받아 만기시 총 금액 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int year;
double money = 1000000;
printf("예치 기간 입력(년): ");
scanf("%d", &year);
printf("이율: 4.5%% "); //%출력하려면 %%입력해야 함
printf("총 금액: %lf", money * (1 + 0.045 * year));
return 0;
}
08. 예치기간을 입력받아 복리 이자 만기 시 총 금액 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main(void)
{
int year;
double money = 1000000;
printf("예치 기간 입력(년): ");
scanf("%d", &year);
printf("이율: 4.5%% "); //%출력하려면 %%입력해야 함
double a = 1 + 0.045;
printf("총 금액: %lf", money* pow(a, year));
return 0;
}
09. 두 점의 중간지점 출력 - 야매임
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
double a=3.20, b=4.60, c=-8.30, d=-2.30;
printf("(%.2lf %.2lf), (%.2lf %.2lf)\n", a, b, c, d);
printf("중심좌표: (%.2lf %.2lf)\n", (a + c) / 2, (b + d) / 2);
return 0;
}
10. 이차방정식 해 구하기 - 검증계산은 뭔지 모르겠어서 안함
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main(void)
{
double a = 2, b = 3, c = -4;
double result1 = (-b + sqrt(b * b - 4 * a * c)) / (2 * a);
double result2 = (-b - sqrt(b * b - 4 * a * c)) / (2 * a);
printf("해1 %.3lf\n", result1);
printf("해2 %.3lf\n", result2);
return 0;
}