수업 일기장
수업 일기장 #피라미드 만들기
빅토리아레몬탄산수
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;
}