수업 일기장

수업 일기장 #피라미드 만들기

빅토리아레몬탄산수 2021. 1. 15. 17:59

해봤는데 반복문 식만 알고 응용은 아직 힘든것 같다

결국 검색으로 해결했다. 검색으로 해결 후 해설 후 나중에 다른 방법으로 쌓는 법을 알아봐야겠다.

변수 생성 시 규칙 참고자료 : 명명 규칙

// STAR_MIN const 상수 이름 구문을 _로 구분

 

직각 삼각형 식

#inculd <stdio.h>


int main() {

const int STAR_MAX = 5;

// 별 최대 갯수 변수 설정(변경하지 않음으로 고정

​

for(int star = 0; star < STAR_MAX; star++) {

// True시 명령문 실행 (처음 별 갯수 0개 설정-별 갯수가 최대 갯수만큼 찰때까지 반복

for(int starMin = 0; starMin <= star; starMin++) {

// 이중 for문으로 별을 삼각형 모양으로 만들어줌
// 처음 별 갯수 변수 생성-최소 별 갯수보다 스타가 크거나 같으면 명령문 실행 최소 별 갯수가 커지면 스타 갯수보다
// 더 커지면 루프 탈출
printf("*");
}
printf("\n);
}
return 0;
}

 

역 삼각형 식

#include <stdio.h>

int main() {

const int STAR_MAX = 5;


for (int star = 0; star < STAR_MAX; star++) {

// 별 초기 갯수 변수 생성 - 설정한 갯수에서 최대값 까지 ++

for (int starNow = 0; starNow < (STAR_MAX - star); starNow++) {

// starNow 변수 생성 - starNow 점수 < STAR_MAX - star - 조건이 맞을때 마다 * 생성 후 조건이 안 맞을 시 루프

printf("*");

0 1 2 3 '4 < 4'

// 이때 탈출 탈출하면서 *을 찍고 나가므로 ***** 가 된다.

}

printf("\n");

// 루프 탈출 후 줄 바꿈

}

return 0;

}

 

 

피라미드 식

 

#include <stdio.h>

int main() {

int starMax = 5; // 변수생성

for (int star = 0; star < starMax; star++) {

// 반복 - 스타가 5(starMax)보다 커질때까지


for (int starMin = starMax - 1; starMin > star; starMin--) {

// starMin은 4 반복 starMin(4) > star(1)일때까지 starMin - 1


printf(" ");

// 피라미드 빈공간(스페이스) 만들기

}

for (int starMin = 0; starMin <2*star+1; starMin++) {

// starMin(0)< 2*star(0)+1 / 반복시 starMin(0)+1 증감

printf("*");

// 루프 탈출 시 띄우고 다시 위 반복하면
// 피라미드가 쌓임
}
printf("\n");
}
return 0;
}

 

피라미드 복습

 

#include <stdio.h>

int main() {
	const int starMax = 5;
	for (int starCounter = 0; starCounter < starMax; starCounter++) { 
			// 커지면서 카운터
		for (int spccounter = starMax - 1; spccounter > starCounter; spccounter--) { 
			// 작아지면서 띄우기
			printf(" ");
		}
		for (int counter = 0; counter < (2*starCounter)+1; counter++) { 
			// 처음만 * 찍고 배수로 증가 처음 증가를 2*0으로 해서 반복시에도 처음은 하나만 나오도록 함
			printf("*");
		}
		printf("\n");
	}
	return 0;
}