본문 바로가기
2학년 2학기/c언어

6장

by kkkkk1023 2024. 10. 25.

1. 종이접기

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(){
    double height = 0.001;
    int count = 0;
    while(height < 8800){
        height *= 2;
        count++;
    }
    printf("종이 접는 횟수: %d", count);
}

 

 

2. 디지털 시계

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main() {
    int hour, min ,sec;
    hour = min = sec = 0;

    while(1){
        system("cls");
        printf("%02d: %02d: %02d", hour, min, sec);
        sec++;
        if(sec == 60) {
            min++;
            sec = 0;
        }
        if(min == 60) {
            hour++;
            min = 0;
        }
        if(hour == 24) {
            hour = min = sec = 0;
        }
        Sleep(1000);
    }
}

 

 

3. 숫자 추측하기

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(){
    srand(time(NULL));
    int randNum = rand() % 100;
    int selectNum = 0, count = 0;
    
    do{
    printf("정답을 추측하여 보시오: ");
    scanf("%d", &selectNum);

    if(randNum < selectNum){
        printf("제시한 정수가 높습니다.");
    } else if (randNum > selectNum){
        printf("제시한 정수가 낮습니다.");
    } else {
        printf("제시한 정수와 같습니다.");
        break;
    }
    count++;
    } while(randNum != selectNum);
    printf("축하합니다! 시도 횟수: %d", count);
}

 

 

 

4. 정수의 자리수 계산

#include <stdio.h>

int main(){
    long long num = 0;
    int count = 1;
    printf("정수를 입력하시오: ");
    scanf("%lld", &num);

    while(num/10 != 0){
        num /= 10;
        count++;
    }
    printf("총 자리수: %d", count);

}

 

 

5. 복리의 무서움

#include <stdio.h>

int main(){
    double money = 1.0;
    for(int i=1; i<=30; i++){
        printf("%d일날 현재 금액 = %lf\n", i, money);
        money *= 2;
    }
}

 

 

 

6. 약수 구하기

#include<stdio.h>

int main(){
    int num = 0;
    printf("정수를 입력하시오: ");
    scanf("%d", &num);

    for (int i=1; i<=num; i++){
        if(num%i==0){
            printf("%d ", i);
        }
    }
}

 

 

7. 조화수열 계산하기

#include<stdio.h>

int main(){
    int num = 0;
    double result = 0.0;
    printf("항의 개수: ");
    scanf("%d", &num);
    for(int i=1; i<=num; i++){
        result += 1.0/i;
    }
    printf("수열의 합: %lf", result);
}

 

 

8. 구구단

#include <stdio.h>

int main(){
    for(int i=1; i <=9 ; i++){
        for(int j=1; j <=9 ; j++){
            printf("%dX%d=%d\n", i, j, i*j);
        }
        printf("\n\n");
    }
}

 

9. 산수 문제 자동 출제

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
	//[산수 문제 자동 출제]
	srand(time(NULL));
	printf("산수 문제를 자동으로 출제합니다. \n");
	while (1) {
		int first = rand() % 100;
		int second = rand() % 100;
		int input = 0;
		printf("%d + %d = ", first, second);
		scanf("%d", &input);
		if (first + second == input) {
			printf("맞았습니다.\n");
			break;
		}
		else {
			printf("틀렸습니다.\n");
		}
	}
}

 

 

10. 소수 찾기

#include<stdio.h>

int main(){
    int num = 0, count=0;
    printf("어디까지 찾을까요?: ");
    scanf("%d", &num);

    for(int i=2; i<=num; i++){
        for(int j=1; j<=i; j++){
            if(i%j==0){
                count++;
            }
        }
        
        if(count == 2){
            printf("%d, ", i);
        }
        count = 0;
    }
}

 

 

11. NIM게임

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    srand(time(NULL));
    int stickCount = 12;
    int computer = 0;
    int getStick = 0;
	
    while (1) {
        printf("현재 스틱의 개수: %d\n", stickCount);

        // 사용자 입력 처리 (1 ~ 3개의 스틱을 가져가도록 유효성 검사)
        do {
            printf("몇 개의 스틱을 가져가시겠습니까? (1~3개): ");
            scanf("%d", &getStick);
            if (getStick < 1 || getStick > 3) {
                printf("잘못된 입력입니다. 1에서 3 사이의 숫자를 입력하세요.\n");
            }
        } while (getStick < 1 || getStick > 3);

        // 스틱을 사용자가 가져가고 게임이 끝나는지 확인
        stickCount -= getStick;
        if (stickCount <= 0) {
            printf("컴퓨터 승리!\n");
            break;
        }

        // 컴퓨터가 스틱을 가져감 (1 ~ 3개의 스틱 중 무작위)
        computer = (rand() % 3) + 1;
        printf("컴퓨터는 %d개의 스틱을 가져갔습니다.\n", computer);

        // 스틱을 컴퓨터가 가져가고 게임이 끝나는지 확인
        stickCount -= computer;
        if (stickCount <= 0) {
            printf("사용자 승리!\n");
            break;
        }
    }

    return 0;
}

'2학년 2학기 > c언어' 카테고리의 다른 글

8장 함수  (0) 2024.10.25
7장 배열  (1) 2024.10.25
5장 조건문  (0) 2024.10.24
4장 수식과 연산자  (0) 2024.10.23
3장 변수와 자료형  (0) 2024.10.23