01.
더보기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
double inchTocenti(double);
int main(void)
{
double input;
printf("거리를 인치로 입력하세요. -> ");
scanf("%lf", &input);
printf("입력한 %lf인치는 %lf센티미터이다.\n", input, inchTocenti(input));
return 0;
}
double inchTocenti(double inch)
{
double centi = inch * 2.54;
return centi;
}
02.
더보기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int getsum(int);
int main(void)
{
int input;
printf("1에서 n까지의 합을 구할 n을 입력하시오. >> ");
scanf("%d", &input);
printf("1에서 %d까지의 합: %d\n", input, getsum(input));
return 0;
}
//재귀함수로 써도 되나, 책에서 기술한 바와 같이 되도록이면 반복문으로 구성해보자
int getsum(int max)
{
for (int i = max - 1; i >= 1; i--)
{
max += i;
}
return max;
}
03.
더보기
#include <stdio.h>
double celTofah(double);
int main(void)
{
printf("섭씨온도 0.5씩 증가값에 대한 화씨온도 출력\n\n");
for (double i = 0; i <= 100; i += 0.5) //실수 연산을 반복문으로 증감연산을 사용하면 오차가 발생할 수 있다 (page 307)
printf("섭씨온도= %.2lf 화씨온도= %.2lf\n", i, celTofah(i));
return 0;
}
double celTofah(double cel)
{
double fah = cel * 1.8 + 32;
return fah;
}
04.
더보기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int maxfinder(int, int, int);
int main(void)
{
int a, b, c;
printf("세 개의 정수 중 가장 큰 정수를 출력합니다.\n");
printf("정수 3 개 입력 >>> ");
scanf("%d%d%d", &a, &b, &c);
printf("입력한 세 개 정수 %d, %d, %d 중에서 가장 큰 정수는 %d입니다.\n", a, b, c, maxfinder(a, b, c));
return 0;
}
int maxfinder(int a, int b, int c)
{
int max = (a > b) ? (a > c ? a : c) : (b > c ? b : c);
return max;
}
05.
더보기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int square(int);
int cube(int);
int main(void)
{
int input;
printf("정수 입력 >>> ");
scanf("%d", &input);
printf("%d의 다섯 제곱은 %d입니다.", input, square(input) * cube(input));
return 0;
}
int square(int a)
{
return a * a;
}
int cube(int a)
{
return a * a * a;
}
06.
더보기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define PI 3.14
double area(double);
double circumference(double);
int main(void)
{
double radius;
printf("원 반지름 입력 >>> ");
scanf("%lf", &radius);
printf("반지름이 %.2lf인 원의 면적은 %.3lf입니다.\n", radius, area(radius));
printf("반지름이 %.2lf인 원의 길이는 %.3lf입니다.\n", radius, circumference(radius));
return 0;
}
double area(double radius)
{
return (PI * radius * radius);
}
double circumference(double radius)
{
return (2 * PI * radius);
}
07.
더보기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
double simpleCalculator(int, int, double);
double compoundCalculator(int, int, double);
int main(void)
{
int principal, year;
double interate;
printf("이자를 계산할 다음 세 항목을 입력하세요.\n");
printf("1. 원금 -> ");
scanf("%d", &principal);
printf("2. 년 -> ");
scanf("%d", &year);
printf("3. 이율(%%) -> ");
scanf("%lf", &interate);
printf("단리 계산 총액은 %.3lf입니다.\n", simpleCalculator(principal, year, interate/100));
printf("복리 계산 총액은 %.3lf입니다.\n", compoundCalculator(principal, year, interate/100));
return 0;
}
double simpleCalculator(int a, int N, double r)
{
double S = a * (1 + r * N);
return S;
}
double compoundCalculator(int a, int N, double r)
{
double S = a * pow(1 + r, N);
return S;
}
08.
더보기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 100
int main(void)
{
int guess, input, count = 0;
srand((long)time(NULL));
guess = rand() % MAX + 1;
printf("1에서 %d 사이에서 한수가 결정되었습니다.\n", MAX);
printf("기회는 최대 7 번입니다.\n");
printf("이 정수는 무엇일까요? 입력해 보세요. : ");
while (scanf("%d", &input)) {
count++;
if (count >= 7) {
if (input == guess) puts("정답입니다.");
else puts("모든 기회를 쓰셨습니다.");
break;
}
if (input > guess) {
printf("입력한 수보다 작습니다. 다시 입력하세요. : ");
}
else if (input < guess) {
printf("입력한 수보다 큼니다. 다시 입력하세요 : ");
}
else {
puts("정답입니다.");
break;
}
}
return 0;
}
09.
더보기
#include <stdio.h>
int sumplus(int);
int main(void)
{
int n = 10;
printf("1부터 %d까지 각각의 합을 구하는 프로그램입니다.\n\n", n);
sumplus(n);
return 0;
}
int sumplus(int a) {
int sum = 0;
if (a <= 1)
sum = 1;
else {
sum = a + sumplus(a - 1);
}
printf("1부터 %3d까지 합: %5d\n", a, sum);
return sum;
}
10.
더보기
#include <stdio.h>
int pow(int, int);
int main(void)
{
int x, y;
x = 6; y = 10;
printf("%d의 0승부터 %d승까지 구하는 프로그램입니다.\n\n", x,y);
pow(x, y);
return 0;
}
int pow(int a, int b)
{
int output = 0;
if (b <= 0)
output = 1;
else {
output = a * pow(a, b - 1);
}
printf("%d의 %3d승: %9d\n", a, b, output);
return output;
}
11.
더보기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void tohex(int);
int main(void)
{
int input;
printf("10진수를 입력하면 16진수를 출력합니다.\n");
printf("정수 입력 >>> ");
scanf("%d", &input);
printf("%d의 16진수는? ", input);
tohex(input);
puts("");
return 0;
}
void tohex(int a)
{
if (a == 0) {
return;
}
else {
tohex(a / 16);
int remain = a % 16;
if (remain < 10) {
printf("%d", remain);
}
else {
printf("%c", 'A' + remain - 10);
}
}
}
12.
더보기
#include <stdio.h>
void copyarray(int[], int[], int);
void printarray(int[], int);
int main(void)
{
int a[] = { 4,7,9,3,6 };
int b[] = { 10,20,30,40,50,60 };
int sizea = sizeof(a) / sizeof(a[0]);
int sizeb = sizeof(b) / sizeof(b[0]);
printf("a[] = ");
printarray(a, sizea);
printf("b[] = ");
printarray(b, sizeb);
copyarray(a, b, sizea);
printf("\n배열 복사 후\n");
printf("b[] = ");
printarray(b, sizeb);
return 0;
}
void printarray(int arr[], int size)
{
for (int i = 0; i < size; i++)
printf("%d ", arr[i]);
puts("");
return;
}
void copyarray(int from[], int to[], int size)
{
for (int i = 0; i < size; i++)
to[i] = from[i];
return;
}
13.
더보기
#include <stdio.h>
int isequalarray(int[], int[], int);
void printarray(int[], int);
int main(void)
{
int a[] = { 4, 7, 9, 3, 6 };
int b[] = { 4, 7, 9, 3, 6 };
//int b[] = { 10, 20, 30, 40, 50 };
int sizea = sizeof(a) / sizeof(a[0]);
int sizeb = sizeof(b) / sizeof(b[0]);
printarray(a, sizea);
printarray(b, sizeb);
if (isequalarray(a, b, sizea))
printf("두 배열은 같다.\n");
else
printf("두 배열은 다르다.\n");
return 0;
}
int isequalarray(int a[], int b[], int n)
{
for (int i = 0; i < n; i++) {
if (a[i] != b[i]) return 0;
}
return 1;
}
void printarray(int arr[], int size)
{
for (int i = 0; i < size; i++)
printf("%d ", arr[i]);
puts("");
return;
}
14.
더보기
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_NUM 45
#define LOTTOSIZE 6
int duplicate(int, int[], int);
int main(void)
{
srand((double)time(NULL));
int lotto[LOTTOSIZE];
int cnt = 0;
while (cnt < LOTTOSIZE) {
int num = rand() % MAX_NUM + 1;
if (!duplicate(num, lotto, cnt)) {
lotto[cnt] = num;
cnt++;
}
}
printf("로또 당첨 번호 : ");
for (int i = 0; i < LOTTOSIZE; i++) {
printf("%d ", lotto[i]);
}
puts("");
return 0;
}
int duplicate(int num, int lotto[], int cnt)
{
for (int i = 0; i < cnt; i++) {
if (lotto[i] == num) return 1;
}
return 0;
}