목차
1. 피보나치 수열 구하기
♣결과
♧코드
<if-else if, else 구문>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int i, n, a, b, c;
printf("피보나치 수열의 몇 번째 항까지 구할까요?");
scanf("%d", &n);
printf("0 1 ");
for (i = 0; i <= n; i++) {
if (i == 0) a = 0;
else if (i == 1) b = 1;
else {
c = a + b;
printf("%d ", c);
a = b;
b = c;
}
}
printf("\n");
return 0;
}
<더 간단히>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int i, a = 0, b = 1, c, n;
printf("몇 번째 항까지 구할까요? ");
scanf("%d", &n);
for (i = 0; i <= n; i++) {
printf("%d, ", a);
c = a + b;
a = b;
b = c;
}
return 0;
}
2. 남은 연료의 양 계산하기
♣결과
♧코드
//오류를 찾아보자!
//olivia_codingschool
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int full, now, input_value;
char status;
full = 1000;
now = 200;
printf("지금은 %d리터 남아있습니다.", now);
while (now > 100) {
printf("충전하려면 +, 소모하려면 -를 붙여 숫자를 입력해주세요.\n");
scanf("%c%d", &status, &input_value);
printf("%c %d \n", status, input_value);
if (status == '-') {
printf("-입니다\n");
now = now - input_value;
}
if (status == '+') {
printf("+입니다\n");
now = now + input_value;
}
}
printf("연료가 10프로 미만으로 남았습니다");
return 0;
}
// 다른 방법
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
double capacity, supply, pumped;
capacity = 1000.0;
printf("현재 채워진 연료는 얼마인가요?\n");
scanf("%lf", &supply);
while (supply > capacity * 0.10) {
printf("연료의 변화량은 얼마인가요?\n");
scanf("%lf", &pumped);
supply = supply + pumped;
if (supply < 0.0)
supply = 0.0;
if (supply > capacity)
supply = capacity;
printf("현재 남은 양은 %lf입니다\n", supply);
}
printf("\n남은 연료의 양이 얼마 되지 않습니다.\n");
return 0;
}
3. 소수 판별하기
♣결과
♧코드
//olivia_codingschool
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int i, j, number, is_prime;
is_prime = 1;
printf("구하고자 하는 숫자를 입력하세요\n");
scanf("%d", &number);
for (i = 2; i <= number; i++) {
if (i == number) continue;
if (number % i == 0) {
is_prime = 0;
break;
}
}
if (is_prime == 1)
printf("%d는 소수이다.", number);
return 0;
}
4. 피타고라스 정리를 만족하는 세 삼각형의 변 구하기
1) 삼각형의 가장 긴 변은 나머지 두 변의 합보다 작다
2) 직각 삼각형의 가장 긴 한 변의 제곱은 나머지 두 변의 제곱의 합과 같다.
♣결과
♧코드
<if-else 구문>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int a, b, c;
for (a = 1; a <= 100; a++) {
for (b = 1; b <= 100; b++) {
for (c = 1; c <= 100; c++) {
if ((a + b > c) && (c * c == a * a + b * b)){
printf("a=%d b=%d c=%d\n", a, b, c);
}
else if ((a + c > b) && (b * b == a * a + c * c)) {
printf("A=%d B=%d C=%d\n", a, b, c);
}
else if ((b + c > a) && (a * a == b * b + c * c)) {
printf("%d %d %d\n", a, b, c);
}
}
}
}
return 0;
}
<논리 연산자 연결>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int a, b, c;
for (a = 1; a <= 100; a++) {
for (b = 1; b <= 100; b++) {
for (c = 1; c <= 100; c++) {
if (((a + b > c) && (c * c == a * a + b * b)) || ((a + c > b) && (b * b == a * a + c * c)) || ((b + c > a) && (a * a == b * b + c * c)))
printf("a=%d b=%d c=%d\n", a, b, c);
}
}
}
return 0;
}
5. 도박꾼이 목표 금액에 도달하는 확률
초기 금액 50달러
목표 금액 250달러
한 번의 도박에 1달러를 건다.
총 1000회의 도박을 한다. 1회의 도박마다 가진 돈을 다 잃거나 목표 금액인 250달러에 도달하면 도박을 중지한다.
1000회의 횟수 동안 도박사가 이길 확률이 얼마나 될지를 계산해보자.
♣결과
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int stake = 50;
int goal = 250;
int T = 1000;
int t;
int bets = 0;
int wins = 0;
srand(time(NULL));
for (t = 0; t < T; t++) {
int cash = stake;
while (cash > 0 && cash < goal) {
bets++;
if ((double)rand() / RAND_MAX < 0.5) cash++;
else cash--;
}
if (cash == goal) wins++;
}
printf("초기 금액 $%d \n", stake);
printf("목표 금액 $%d \n", goal);
printf("%d 중의 %d번 승리\n", T, wins);
printf("이긴 확률=%f \n", 100.0 * wins / T);
return 0;
}
6. 파이 계산하기 - Gregory-Leibniz 무한수열 이용
파이를 구하는 방법이다.
파이: 원에서 원주와 반지름의 비율을 나타내느느 상수
파이를 계산하는 방법 중 하나로 Gregory-Leibniz의 무한수열을 활용한다.
프로그램을 작성해보자.
♣결과
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int i, n;
printf("숫자를 입력하세요");
scanf("%d", &n);
double x, y, pie;
pie = 0;
for (i = 1; i <= n; i++) {
if (i == 1) x = 1;
else x = x + 2;
if (i % 2 == 1) pie = pie + 4 / x;
else pie = pie - 4 / x;
}
printf("%lf\n", pie);
return 0;
}
'C언어 > 참고서: C언어 콘서트' 카테고리의 다른 글
C언어 30차시 배열의 초기화, sizeof 연산자 (0) | 2023.03.28 |
---|---|
C언어 29차시 배열 array, 배열 요소, 인덱스, n차원 배열, 문자열 (0) | 2023.03.28 |
C언어 27차시 반복문 연습문제 3 (0) | 2023.03.27 |
C언어 27차시 반복문 연습문제 2, 원의 방정식, (0) | 2023.03.27 |
C언어 26차시 break, continue, 연습문제 (0) | 2023.03.26 |