목차
1. 로또 프로그램 만들기
총 6자리, 1~45 사이 숫자, 중복 허용안됨
♣결과
♧코드
<do~ while 구문을 이용하여 중복 체크를 한 경우>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main(void)
{
srand(time(NULL));
//배열을 이용하여 중복체크
int lotto[6] = { 0 };
int flag = 1;
int pick_n;
//do while 구문을 이용하여 중복체크
for (int i = 0; i < 6; i++) {
do {
pick_n = rand() % 45 + 1;
for (int j = 0; j < i; j++) {
if (lotto[j] == pick_n) flag = 0;
}
} while (flag == 0);
lotto[i] = pick_n;
printf("%d ", pick_n);
}
return 0;
}
//olivia_codingschool
<배열을 이용하여 중복 체크를 한 경우>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main(void)
{
srand(time(NULL));
//배열을 이용하여 중복체크
int number, lotto[6] = { 0 };
int iter_check[45] = { 0 };
for (int i=0; i < 6; i++) {
number = rand() % 45 + 1;
while (iter_check[number] == 1) number = rand() % 45 + 1;
lotto[i] = number;
iter_check[number] = 1;
printf("%d ", lotto[i]);
}
return 0;
}
2. 피보나치 수열 만들기
♣결과
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int fibbonachi(int);
int main(void)
{
int x = 7;
for (int i = 0; i < x; i++) {
printf("%d ", fibbonachi(i));
}
return 0;
}
int fibbonachi(int n)
{
if (n == 0) return 0;
else if (n == 1) return 1;
else return fibbonachi(n - 2) + fibbonachi(n - 1);
}
//olivia_codingschool
3. 테일러 급수 이용하여 지수 함수 e의 x승 계산하기
- 테일러 급수란?
테일러 급수(Taylor series)는 함수를 무한히 미분 가능한 다항식의 합으로 근사하는 방법이다. 테일러 급수를 계산할 때는 주어진 함수의 값과 함께 근사하려는 지점의 값(x)과 계산할 항의 개수(n)가 필요하다.
♣결과
7.389 정도 나옴.
n이 너무 크면 inf로 나오기 때문에 수를 조정하기를 바란다.
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int fact(int);
int main(void) {
double numerator, denominator;
long double result, sum=0.0;
int x = 2;
int n = 10;
for (int i = 0; i < n; i++) {
numerator = pow(x, i);
denominator = fact(i);
result =(long double)numerator / denominator;
sum += result;
}
printf("%.3Lf", sum);
return 0;
}
int fact(int n)
{
if (n <= 1) return 1;
else return n* fact(n - 1);
}
//olivia_codingschool
4. ATM 프로그램 만들기
- 고객의 선택 1:잔액확인, 2:입금, 3:인출, 4:종료
♣결과
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int deposit();
int withdraw();
int balance = 0;
int main(void) {
int flag = 1;
int static customer_choice;
while (flag == 1) {
//고객의 선택 1:잔액확인, 2:입금, 3:인출, 4:종료
printf("\n1~4번 중 하나의 숫자를 입력하세요.\n1:잔액확인, 2:입금, 3:인출, 4:종료\n");
scanf("%d", &customer_choice);
switch (customer_choice)
{
case 1:
printf("남은 잔액은 %d입니다\n", balance);
break;
case 2:
printf("남은 잔액은 %d입니다\n", deposit());
break;
case 3:
printf("남은 잔액은 %d입니다\n", withdraw());
break;
case 4:
printf("실행을 종료합니다. 좋은 하루되세요!\n");
flag = 0;
break;
}
}
return 0;
}
//입금
int deposit(void) {
int money;
printf("얼마를 입금하시겠습니까?");
scanf("%d", &money);
balance += money;
return balance;
}
//인출
int withdraw(void) {
int money;
printf("얼마를 인출하시겠습니까?");
scanf("%d", &money);
balance -= money;
return balance;
}
//olivia_codingschool
.
'C언어 > 참고서: C언어 콘서트' 카테고리의 다른 글
C언어 42차시 함수 연습문제 2 (0) | 2023.04.04 |
---|---|
C언어 41차시 재귀함수 알고리즘 연습하기 +자료형 변형 (0) | 2023.04.04 |
C언어 39차시 함수 원형 선언 (0) | 2023.04.04 |
C언어 38차시 함수, 함수헤더, 파라미터, parameter, 함수몸체, 함수호출, call, argument (0) | 2023.04.04 |
C언어 37차시 배열 연습문제 3, 분산, 표준편차 (0) | 2023.04.04 |