목차
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;
}
중첩반목은은 반복문안쪽에 반복문 즉 내부반복문부터 해석하는것이 팁입니다。 코드설명 들어갈게요。
코드 설명:
- 변수 선언:
- x와 y라는 두 개의 정수형 변수를 선언합니다. 이 변수들은 반복문의 제어 변수로 사용됩니다.
int x, y;
- x와 y라는 두 개의 정수형 변수를 선언합니다. 이 변수들은 반복문의 제어 변수로 사용됩니다.
- 외부 반복문:
- 외부 반복문은 y 변수를 0부터 시작해서 5보다 작은 동안 반복합니다. 즉, 이 반복문은 행의 개수 정합니다
for (y = 0; y < 5; y++) {
- 외부 반복문은 y 변수를 0부터 시작해서 5보다 작은 동안 반복합니다. 즉, 이 반복문은 행의 개수 정합니다
- 내부 반복문:내부 반복문은 x 변수를 0부터 시작해서 10보다 작은 동안 반복합니다. 즉, 이 반복문은 열의 개수를 정합니다.
for (x = 0; x < 10; x++) {
- 별 출력:
- 내부 반복문 안에서 별(*)을 출력합니다. 이 출력은 내부 반복문이 실행될 때마다 10번 실행됩니다.
printf("*");
- 내부 반복문 안에서 별(*)을 출력합니다. 이 출력은 내부 반복문이 실행될 때마다 10번 실행됩니다.
- 줄 바꿈:
내부 반복문이 완료된 후, 줄 바꿈 문자를 출력하여 다음 줄로 이동합니다. 이는 외부 반복문이 실행될 때마다 실행됩니다.
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;
}
코드설명은 생략하겠습니다。 집접 타이핑해보고 생각해보는게 중요합니다。
반응형
'IT' 카테고리의 다른 글
C언어 팩토리얼구하기 (0) | 2025.01.08 |
---|---|
기초컴퓨터프로그래밍 C언어(8)-함수 (0) | 2025.01.08 |
c언어 랜덤숫자(rand()함수) (0) | 2025.01.06 |
기초컴퓨터프로그래밍 C언어(6)-while, for 반복문 (0) | 2025.01.03 |
기초컴퓨터프로그래밍 C언어(5)-조건문 (3) | 2025.01.02 |