Language/C

[ C ] [ 중첩 반복문 연습 문제 ] 삼각형 출력 프로그램

곽수진 2021. 10. 25. 17:42
반응형
다음과 같은 모양으로 출력되도록 프로그램을 작성해보자.

 

Question 1.

1
1 1
1 1 1
1 1 1 1
1 1 1 1 1

 

for 중첩문 ver.

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int a, b;

	for (b = 1; b <= 5; b++) {
		for (a = 1; a <= b; a++)
			printf("%d ", 1);
		printf("\n");
	}

	return 0;
}

for(b=1; b<=5; b++) : 반복문이 수행되는 동안 총 5줄 생성(세로)

for(a=1; a<=b; a++) : 1부터 시작해서 b값보다 작을 때까지 하나씩 늘려감(가로)

 

 

for / do문 ver.

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int a, b;

	for (b = 1; b <= 5; b++) {
		a = 1;
		do{
			printf("%d ", 1);
			a++;
		} while (a<=b);
		printf("\n");
	}

	return 0;
}

 

 

for / while문 ver.

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int a, b;

	for (a = 1; a <= 5; a++) {
		b = 1;
		while (b<=a) {
			printf("%d ", 1);
			b++;
		}
		printf("\n");
	}
	return 0;
}

 

 

출력 결과 모습

 

 


 

 

Question 2.

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

 

for 중첩문 ver.

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int a, b;

	for (a = 1; a <= 5; a++) {
		for (b = 1; b <= a; b++)
			printf("%d ", b);
		printf("\n");
	}

	return 0;
}

for (a = 1; a <= 5; a++) : 반복문이 수행되는 동안 총 5줄 생성(세로)

▶ for (b = 1; b <= a; b++) : 1부터 시작해 b보다 값이 작을 때까지 값을 하나씩 늘려감(가로)

 

 

for / do문 ver.

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int a, b;

	for (a = 1; a <= 5; a++) {
		b = 1;
		do {
			printf("%d ", b);
			b++;
		} while (b <= a);
		printf("\n");
	}

	return 0;
}

 

 

for / while문 ver.

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int a, b;

	for (a = 1; a <= 5; a++) {
		b = 1;
		while (b<=a) {
			printf("%d ", b);
			b++;
		}
		printf("\n");
	}
	return 0;
}

 

 

출력 결과 모습

 

 


 

 

Question 3.

1
2 2
3 3 3
4 4 4 4
5 5 5 5 5

 

for 중첩문 ver.

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int a, b;

	for (a = 1; a <= 5; a++) {
		for (b = 1; b <= a; b++)
			printf("%d ", a);
		printf("\n");
	}

	return 0;
}

▶ for (a = 1; a <= 5; a++) : 반복문이 수행되는 동안 총 5줄 생성(세로)

▶ for (b = 1; b <= a; b++) : 1부터 시작해 b보다 값이 작을 때까지 값을 하나씩 늘려감(가로)

 

 

for / do문 ver.

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int a, b;

	for (a = 1; a <= 5; a++) {
		b = 1;
		do {
			printf("%d ", a);
			b++;
		} while (b <= a);
		printf("\n");
	}

	return 0;
}

 

 

for / while문 ver.

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int a, b;

	for (a = 1; a <= 5; a++) {
		b = 1;
		while (b <= a) {
			printf("%d ", a);
			b++;
		}
		printf("\n");
	}
	return 0;
}

 

 

출력 결과 모습

 

 


 

 

Question 4.

A B C D E
A B C D
A B C
A B
A

 

 

for 중첩문 ver.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int a, b;

	for (b = 69; b >= 65; b--) {
		for (a = 65; a <= b; a++) {
			printf("%c ", a);
		}
		printf("\n");
	}
	return 0;
}

for(b=69; b>=65; b--) : 한 줄에 5개부터 하나만 남을 때까지 점차 줄여감(세로)

    → 알파벳 A와 E의 아스키코드값 활용

for(a=65; a<=b; a++) : 한 줄에 알파벳 A부터 b값보다 작을 때까지 하나씩 늘려가며 출력(가로)

printf("%c ", a) : 아스키코드값을 활용했기 때문에 int로 정의했지만 출력은 c로 함

 

 

for / while문 ver.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int a, b;

	for (b = 69; b >= 65; b--) {
		a = 65;
		while (a <= b) {
			printf("%c ", a);
			a++;
		}
		printf("\n");
	}
	return 0;
}

 

 

for / do문 ver.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int a, b;

	for (b = 69; b >= 65; b--) {
		a = 65;
		do {
			printf("%c ", a);
			a++;
		} while (a <= b);
		printf("\n");
	}
	return 0;
}

 

 

출력 결과 모습

 

 

반응형