C언어 문제
다이아몬드 출력하기
문제)
아래 그림과 같이 다이아몬드 모양이 나올 수 있도록 별(*)을 출력해주세요.
* *** ***** ******* ********* ********* ******* ***** *** *
우선 위의 삼각형과 아래의 삼각형을 나눠서 각각 코딩을 짠 뒤, 합쳐보겠습니다.
줄 수를 i, 첫 번째 칸으로부터 공백의 공간 수를 j, 별의 개수를 h로 설정합니다.
아래와 같이 숫자를 먼저 놓고 코딩을 하면 더욱 수월하게 할 수 있습니다.
1) 위의 삼각형 i j h * 1 4 1 *** 2 3 3 ***** 3 2 5 ******* 4 1 7 ********* 5 0 9
2)아래의 삼각형 i j h ********* 1 0 9 ******* 2 1 7 ***** 3 2 5 *** 4 3 3 * 5 4 1
다이아몬드 출력 코드를 살펴보겠습니다.
#include <stdio.h> int main(void){ int i, j, h; int result; //위의 삼각형 구현 for(i=1; i<=5; i++) { for(j=5-i; j>=1; j--){ printf(" "); //공백(" ") 출력 } //범위를 2씩 증가 result = 2*i; for(h=1; h<result; h++){ printf("*"); //별(*) 출력 } printf("\n"); } //아래의 삼각형 구현 for(i=1; i<=5; i++){ for(j=1; j<i; j++){ printf(" "); } //범위를 2씩 감소 result = (2*i-1); for(h=9; h>=result; h--){ printf("*"); //별(*) 출력 } printf("\n"); } return 0; }
다음은 출력 결과입니다.
줄 수를 i, 첫 번째 칸부터 공백의 수를 j, 별의 개수를 h로 각각 변수를 선언합니다.
위의 삼각형은 줄 수(i)가 늘어날 때마다
공백(j)이 한 칸씩 줄어드는 for문과
별(h)이 2개씩 늘어나는 for문을 작성합니다.
아래의 삼각형은 줄 수(i)가 늘어날 때마다
공백(j)이 한 칸씩 늘어나는 for문과
별(h)이 2개씩 줄어드는 for문을 작성합니다.
위의 삼각형과 아래 삼각형의 순서를 바꿔서 배치하면
********* ******* ***** *** * * *** ***** ******* *********
모래시계 모양도 가능하겠죠?
반복한다 생각하시고 모래시계 모양도 코딩 한 번 해보시면서
코드를 완전히 익히시기 바랍니다 ~
'Code.D IT 프로젝트 > C언어' 카테고리의 다른 글
[C언어 문제] 배열을 이용하여 입력받은 데이터 출력하기 (0) | 2017.06.13 |
---|---|
[C언어 문제] 입력받은 두 문자의 차이 구하기 (0) | 2017.06.12 |
[C언어 문제] 아스키코드 출력하는 프로그램 (0) | 2017.06.08 |
[C언어 문제] 홀수의 합과 짝수의 합 구하기 (0) | 2017.06.07 |
[C언어 문제] 지정 배수의 합계 구하는 프로그램 (0) | 2017.06.07 |