IT

기초컴퓨터프로그래밍 C언어(7)-중첩반복문、삼각형 별찍기

배채 2025. 1. 6. 16:14

목차

  1. C언어 중첩반복문
  2. 반복문과 중첩반복문 비교
  3. 중첩반복문 응용

C언어 중첩반복문

저번시간에는 반복문(for, while)을 공부해보았는데요 이번시간에는 중첩반복문에대해 포스팅해보겠습니다. 반복문이 반복문이지 중첩반복문은 뭐냐?

프로그래밍에서 반복문은 특정 코드 블록을 여러 번 실행하는 데 사용됩니다. 그 중에서도 중첩반복문은 반복문 안에 또 다른 반복문을 포함하는 구조로, 복잡한 문제를 효과적으로 해결하는 데 유용합니다. 이번시간은 머리가 꽤 아플거에요. 그유명한 별찍기 부터 시작해보아요.

반복문과 중첩반복문 비교

#include <stdio.h>

int main() {
    int n = 5; // 별의 개수

    for (int i = 0; i < n; i++) {
        printf("*");
    }
    printf("\n");

    return 0;
}

이 코드는 단순이 별을 일렬로 작성합니다.

출력이미지

하지만 별로 사각형을 찍고싶다면??

#include <stdio.h>

int main() {
    int x, y;

    for (y = 0; y < 5; y++) {
        for (x = 0; x < 10; x++) {
            printf("*");
          
        }
        printf("\n");
    }

    return 0;
}

출력이미지

중첩반목은은 반복문안쪽에 반복문 즉 내부반복문부터 해석하는것이 팁입니다。 코드설명 들어갈게요。

코드 설명:

  1. 변수 선언:
    • x와 y라는 두 개의 정수형 변수를 선언합니다. 이 변수들은 반복문의 제어 변수로 사용됩니다.
      int x, y;
      
  2. 외부 반복문:
    • 외부 반복문은 y 변수를 0부터 시작해서 5보다 작은 동안 반복합니다. 즉, 이 반복문은 행의 개수 정합니다
      for (y = 0; y < 5; y++) {
      
  3. 내부 반복문:내부 반복문은 x 변수를 0부터 시작해서 10보다 작은 동안 반복합니다. 즉, 이 반복문은 열의 개수를 정합니다.
    for (x = 0; x < 10; x++) {
    
  4. 별 출력:
    • 내부 반복문 안에서 별(*)을 출력합니다. 이 출력은 내부 반복문이 실행될 때마다 10번 실행됩니다.
      printf("*");
      
  5. 줄 바꿈:

내부 반복문이 완료된 후, 줄 바꿈 문자를 출력하여 다음 줄로 이동합니다. 이는 외부 반복문이 실행될 때마다 실행됩니다.

printf("\n");

중첩반복문 응용

삼각형 1

#include <stdio.h>

int main() {
    int n = 5;
    for (int y = 1; y <= 5; y++) {
        for (int x = 1; x <= y; x++) {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

출력이미지

삼각형 2

#include <stdio.h>

int main() {
    int n = 5;

    for (int y = 1; y <= n; y++) {

        for (int null = 1; null <= n - y; null++) {
            printf(" ");
        }
        for (int x = 1; x <=y; x++) {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

역삼각형 1

#include <stdio.h>

int main() {
    int n = 5; // 역삼각형의 높이

    for (int y = n; y >= 1; y--) {
        // 공백 출력
        for (int space = 1; space <= n - y; space++) {
            printf(" ");
        }
        // 별 출력
        for (int x = 1; x <= y; x++) {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

숫자삼각형1

#include <stdio.h>

int main() {
    int n = 5;

    for (int y = 1; y <= n; y++) {
        for (int x = 1; x <= y; x++) {
            printf("%d", x);
        }
        printf("\n");
    }

    return 0;
}

숫자삼각형2

#include <stdio.h>

int main() {
    int n = 5;

    for (int y = 1; y <= n; y++) {
        for (int x = 1; x <= y; x++) {
            printf("%d", y);
        }
        printf("\n");
    }

    return 0;
}

코드설명은 생략하겠습니다。 집접 타이핑해보고 생각해보는게 중요합니다。

반응형