Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 원 면적
- 합
- putchar()
- PERPECT
- 평균
- eslint 쉼표필요 오류
- 실습예제
- 백엔드 개발자 #로드맵
- +연산자 의미
- 풀이
- 점프 투 파이썬 #패키지 # 비전공자
- () (+) 차이
- JavaScript
- 오류
- c
- 3판
- 3장
- 원 둘레
- 쉼표필요
- eslint
- perpectC
- 정답
- perpect C
- ㅔㄴ트 안잉
- 3강
- 티스토리 커버이미지 변경
- 연습문제
- getchar()
- Chapter3
- 비트마스크
Archives
- Today
- Total
옥수수와 식빵 그리고 코딩
9장 연습문제 본문
01. 인치를 센티미터로 바꾸는 함수
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define INCH 2.54 //1인지는 2.45cm
double inchTcm(double);
int main(void)
{
double cm;
printf("거리를 인치로 입력하세요: ");
scanf("%lf", &cm);
printf("입력한 %lf인치는 %lf센티미터입니다.", cm, inchTcm(cm));
return 0;
}
double inchTcm(double cm)
{
double result = cm * INCH;
return result;
}
02. 1부터 입력받은 수 까지의 합을 구하는 함수
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int getsum(int);
int main(void)
{
int n;
printf("1부터 n까지 합을 구할 n입력: ");
scanf("%d", &n);
printf("1에서 %d까지의 합: %d", n, getsum(n));
return 0;
}
int getsum(int max)
{
int sum = 0;
for (int i = 1; i <= max; i++)
sum += i;
return (sum);
}
03. 섭씨온도를 화씨온도로 변환하는 함수, 섭씨온도 10부터 100까지 0.5씩 증가
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
double celTfah(double);
int main(void)
{
for (double cel = 10; cel <= 100; cel = cel + 0.5)
{
printf("섭씨온도 = %.2lf 화씨온도 = %.2lf\n", cel, celTfah(cel));
}
return 0;
}
double celTfah(double cel)
{
double fah = 0;
fah = cel * 9 / 5 + 32;
return (fah);
}
04. 세 정수를 입력받아 가장 큰 수를 출력하는 함수
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int max(int, int, int);
int main(void)
{
int num1, num2, num3;
printf("가장 큰 정수 입력: ");
scanf("%d %d %d", &num1, &num2, &num3);
printf("입력한 정수 %d, %d, %d 중에서 가장 큰 정수는 %d이다.", num1, num2, num3, max(num1, num2, num3));
return 0;
}
int max(int a, int b, int c)
{
int maxnum = a;
for (int i = 1; i <= 3; i++)
{
if (b > maxnum) // max = (max>b)?max:b; 라고 적을 수도 있음
{
maxnum = b;
}
if (c > maxnum)
{
maxnum = c;
}
}
return maxnum;
}
05. 입력받은 정수의 제곱을 구하는 함수와 세제곱을 구하는 함수를 이용해 다섯제곱을 구하라
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int square(int);
int cube(int);
int main(void)
{
int n;
printf("정수 입력: ");
scanf("%d", &n);
printf("%d의 다섯 제곱은 %d입니다", n, square(n) * cube(n));
return 0;
}
int square(int n)
{
int result;
result = n * n;
return result;
}
int cube(int n)
{
int result;
result = square(n) * n;
return result;
}
06. 원의 면적을 구하는 함수와 원의 둘레를 구하는 함수
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define PI 3.14
double area(double);
double circumference(double);
int main(void)
{
double r;
printf("반지름 입력: ");
scanf("%lf", &r);
printf("반지름 %.2lf인 원의 면적은 %.3lf입니다.\n", r, area(r));
printf("반지름 %.2lf인 원의 둘레는 %.3lf입니다.\n", r, circumference(r));
return 0;
}
double area(double r)
{
double areaa = r * r * PI;
return areaa;
}
double circumference(double r)
{
double circum = 2 * PI * r;
return circum;
}
07. 단리 계산 함수, 복리 계산 함수
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
double dan(int, int, double);
double bok(int, int, double);
int main(void)
{
int a;
int n;
double r;
printf("이자를 계산할 다음 세 항목 입력\n");
printf("1. 원금: ");
scanf("%d", &a);
printf("2. 년: ");
scanf("%d", &n);
printf("3. 이율: ");
scanf("%lf", &r);
printf("단리 계산 총액: %lf\n", dan(a, n, r));
printf("복리 계산 총액: %lf", bok(a, n, r));
return 0;
}
double dan(int a, int n, double r)
{
double s;
s = a * (1 + r/100 * n);
return s;
}
double bok(int a, int n, double r)
{
double s;
s = (a * pow((1 + r/100), n));
return s;
}
08. 기회 7번 안에 난수 맞추기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 100
int main(void)
{
int guess, input;
srand((long)time(NULL));
guess = rand() % 100 + 1;
printf("1에서 %d사이에서 한 정수가 결정되었습니다.\n", MAX);
printf("기회는 7번입니다\n");
printf("이 정수는 무엇일까요? 입력ㄱㄱ\n");
int i;
for (i = 0; i < 7; i++)
{
scanf("%d", &input);
if (input > guess)
printf("이것보다 작음. 다시 ㄱㄱ: ");
else if (input < guess)
printf("이것보다 큼. 다시 ㄱㄱ: ");
else
{
printf("정답!");
break;
}
}
if(i==7)//기회를 모두 소진 했을때만 출력, 6에서 멈춰소 1은 더해지기 대문에
printf("기회가 모두 소진되었습니다.");
return 0;
}
에...마지막까지 못맞췄을 때 다시 입력하라는 문구는안떳으면 좋겠는디...
09. 1부터 n까지 합을 재귀함수로 작성
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int sum(int);
int main(void)
{
for (int i = 1; i <= 10; i++)
{
printf("1부터 %d까지의 합: %3d\n", i, sum(i));
}
}
int sum(int n)
{
if (n <= 1)
return 1;
else
return (sum(n - 1) + n); //sum(n)=(sum(n - 1) + n) 이케 적는거 아님
}
10.x의 y제곱을 구하는 재귀함수, 제곱을 구하는 재귀함수
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
double squr(int);
int main(void)
{
printf("6의 0승부터 10승까지\n");
for (int i = 0; i <= 10; i++)
{
printf("6의 %2d승: %10.0lf\n", i, squr(i));
}
}
double squr(int n)
{
if (n <= 0)
return 1;
else
return (6 * squr(n-1));//n이 아니라 n-1해야 재귀됨
}
11. 재귀함수를 이용하여 입력받은 정수를 16진수로 변환. 16진수 재귀함수
참고: https://blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=xtelite&logNo=50017626069
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void hex(int);
void turn16(int);
int main(void)
{
int n;
printf("정수 입력: ");
scanf("%d", &n);
hex(n);//hex()안에 turn16이 있으므로 turn16이 아닌 hex를 호출해야함
return 0;
}
void hex(int n)
{
if (n == 0)
return;
hex(n / 16);
turn16(n % 16);
}
void turn16(int n)
{
if (n >= 10)
printf("%c", 'A' + n - 10);
else
printf("%d", n);
}
12.
13.
14.
'C > perpect C' 카테고리의 다른 글
11장 연습문제 포인터 기초 (0) | 2022.01.08 |
---|---|
10장 변수 유효범위 연습문제 (0) | 2022.01.05 |
8장 배열 연습문제 (0) | 2021.12.30 |
7장 연습문제 (0) | 2021.12.29 |
6장 연습문제 (0) | 2021.12.29 |
Comments