본문 바로가기
프로그래밍/C

반복문 - 예제 모음

by 길냥이 2025. 4. 18.
728x90

목차

  1. 기초적인 "반복문" 입니다만
  2. 구구단을 외우자
  3. 나와라 X자
  4. 소수 구하기
  5. 아니 내 문자열이

 

1. 기초적인 "반복문" 입니다만

반복문을 이용해 화면에 @를 입력받은 숫자만큼 출력하는 프로그램을 만들어 봅시다.

for문이든 while문이든 상관없어요.

 

입력

반복 횟수를 입력하세요 : 66

 

출력

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

정답은..

 

다음과 같아요.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int stats = 0;
	int i;

	printf("반복 횟수를 입력하세요 : ");
	scanf("%d", &stats);

	for (i = 1; i <= stats; i++)
		printf("@");

	return 0;
}

i가 선언만 되었지 초기화가 안 되어 있는데, 이는 for문에서 i를 초기화해서 사용하기 때문이에요.

물론 웬만하면 선언과 동시에 초기화 대입을 해주도록 합시다.

 

2. 구구단을 외우자

이번에는 아무런 입력도 받지 않는 대신, 구구단을 한번 만들어 봅시다.

 

자유롭게 만들어도 좋아요. 출력은 다음과 같아야 합니다.

 

입력

없음

 

출력

2 × 1 = 02      3 × 1 = 03      4 × 1 = 04      5 × 1 = 05      6 × 1 = 06      7 × 1 = 07      8 × 1 = 08      9 × 1 = 09
2 × 2 = 04      3 × 2 = 06      4 × 2 = 08      5 × 2 = 10      6 × 2 = 12      7 × 2 = 14      8 × 2 = 16      9 × 2 = 18
2 × 3 = 06      3 × 3 = 09      4 × 3 = 12      5 × 3 = 15      6 × 3 = 18      7 × 3 = 21      8 × 3 = 24      9 × 3 = 27
2 × 4 = 08      3 × 4 = 12      4 × 4 = 16      5 × 4 = 20      6 × 4 = 24      7 × 4 = 28      8 × 4 = 32      9 × 4 = 36
2 × 5 = 10      3 × 5 = 15      4 × 5 = 20      5 × 5 = 25      6 × 5 = 30      7 × 5 = 35      8 × 5 = 40      9 × 5 = 45
2 × 6 = 12      3 × 6 = 18      4 × 6 = 24      5 × 6 = 30      6 × 6 = 36      7 × 6 = 42      8 × 6 = 48      9 × 6 = 54
2 × 7 = 14      3 × 7 = 21      4 × 7 = 28      5 × 7 = 35      6 × 7 = 42      7 × 7 = 49      8 × 7 = 56      9 × 7 = 63
2 × 8 = 16      3 × 8 = 24      4 × 8 = 32      5 × 8 = 40      6 × 8 = 48      7 × 8 = 56      8 × 8 = 64      9 × 8 = 72
2 × 9 = 18      3 × 9 = 27      4 × 9 = 36      5 × 9 = 45      6 × 9 = 54      7 × 9 = 63      8 × 9 = 72      9 × 9 = 81

이렇게 나와야 합니다.

정답은..

 

다음과 같아요.

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 0;

	for (a = 1; a <= 9; a++)
	{
		for (b = 2; b <= 9; b++)
		{
			printf("%d × %d = %02d\t", b, a, a * b);
		}
		printf("\n");
	}

	return 0;
}

 

3. 나와라 X자

한번 ☆와 ★을 이용해 n*n모양 행렬에 X자를 그려 봅시다.

for문을 잘 이용하면 되지 않을까요?

for문을 두 번 이용해 열과 행을 만들고, scanf를 통해 폭을 받으세요.

 

입력

폭을 입력하세요 : 13

 

출력

 ★  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ★
 ☆  ★  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ★  ☆
 ☆  ☆  ★  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ★  ☆  ☆
 ☆  ☆  ☆  ★  ☆  ☆  ☆  ☆  ☆  ★  ☆  ☆  ☆
 ☆  ☆  ☆  ☆  ★  ☆  ☆  ☆  ★  ☆  ☆  ☆  ☆
 ☆  ☆  ☆  ☆  ☆  ★  ☆  ★  ☆  ☆  ☆  ☆  ☆
 ☆  ☆  ☆  ☆  ☆  ☆  ★  ☆  ☆  ☆  ☆  ☆  ☆
 ☆  ☆  ☆  ☆  ☆  ★  ☆  ★  ☆  ☆  ☆  ☆  ☆
 ☆  ☆  ☆  ☆  ★  ☆  ☆  ☆  ★  ☆  ☆  ☆  ☆
 ☆  ☆  ☆  ★  ☆  ☆  ☆  ☆  ☆  ★  ☆  ☆  ☆
 ☆  ☆  ★  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ★  ☆  ☆
 ☆  ★  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ★  ☆
 ★  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ★

정답은..

 

다음과 같아요.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int i = 0;
	int j = 0;
	int width = 0;
	
	printf("폭을 입력하세요 : ");
	scanf("%d", &width);

	for (i = 0; i < width; i++)
	{
		for (j = 0; j < width; j++)
		{
			if (i == j || i + j == width - 1)
			{
				printf("★ ");
			}
			else
				printf("☆ ");
		}
		printf("\n");
	}

	return 0;
}

멋진 모양이 아주 마음에 드네요.

이전에도 말했지만, 프로그래밍에서는 index가 항상 0부터 시작하기 때문에..

 

4. 소수 구하기

소수는 자기 자신과 1로만 나누어떨어지는 수를 말합니다.

한번 구해보세요. for문도 있으니 그냥 노가다로 구하시면 됩니다.

일반적으로는 구하고자 하는 수의 제곱근만큼(그 이상의 수는 지금까지 구한 수의 인수를 포함하기 때문) 구하면 되는데..

아쉽게도 math를 쓸 수가 없어서, 싸그리 다 나눠봐야 합니다.

scanf로 구하고자 하는 소수의 최댓값을 입력하세요.

 

입력

숫자를 입력하세요 : 150

 

출력

2은 소수입니다.
3은 소수입니다.
5은 소수입니다.
7은 소수입니다.
11은 소수입니다.
13은 소수입니다.
17은 소수입니다.
19은 소수입니다.
23은 소수입니다.
29은 소수입니다.
31은 소수입니다.
37은 소수입니다.
41은 소수입니다.
43은 소수입니다.
47은 소수입니다.
53은 소수입니다.
59은 소수입니다.
61은 소수입니다.
67은 소수입니다.
71은 소수입니다.
73은 소수입니다.
79은 소수입니다.
83은 소수입니다.
89은 소수입니다.
97은 소수입니다.
101은 소수입니다.
103은 소수입니다.
107은 소수입니다.
109은 소수입니다.
113은 소수입니다.
127은 소수입니다.
131은 소수입니다.
137은 소수입니다.
139은 소수입니다.
149은 소수입니다.

정답은..

 

다음과 같아요.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int i = 0;
	int j = 0;
	int width = 0;
	
	printf("숫자를 입력하세요 : ");
	scanf("%d", &width);

	for (i = 2; i < width; i++)
	{
		for (j = 2; j < i; j++)
		{
			if (i % j == 0)
				break;
		}
		if (j == i)
			printf("%d은 소수입니다.\n", i);
	}

	return 0;
}

좀 복잡한데, 첫 번째 for문에서는 구하고자 하는 목표만큼 돌리고

두 번째 for문에서는 구하고자 하는 수 -1까지 나눠요.

이때 0으로 나누어떨어지면 for문 하나를 나가서 처음으로 돌아오고요.

 

그리고 for문이 문제없이 돌면 소수를 출력합니다.

 

5. 아니 내 문자열이

문자열을 쪼개서 출력해봅시다.

VisualC++ 을 VsaC+로 쪼개서 출력해보세요.

힌트를 드리자면.. for문의 증감 배율을 수정하면 되지 않을까요?

 

입력

없음

 

출력

VsaC+

정답은..

 

다음과 같아요.

#include <stdio.h>

int main()
{
	char str[10] = "VisualC++";
	int i = 0;

	for (i = 0; i < 10; i += 2)
	{
		printf("%c", str[i]);
	}
	return 0;
}

 

728x90

'프로그래밍 > C' 카테고리의 다른 글

함수의 작성과 사용  (0) 2025.04.23
연산자 - 예제 모음  (0) 2025.04.20
선택문 - 예제 모음  (0) 2025.04.18
변수와 데이터 입력 - 예제 모음  (0) 2025.04.18
상수와 데이터 출력 - 예제 모음  (0) 2025.04.18