W 개발 일지

C언어 - While문 이용하여 *별로 삼각형 만들기 2 본문

C

C언어 - While문 이용하여 *별로 삼각형 만들기 2

waVwe 2020. 10. 6. 22:07
반응형

 

*
**
***
****
*****
cs

저번 글에서는 위와 같은 모양의 삼각형 만들기를 설명했었다.

 

tildacoderecorder.tistory.com/1?category=918749

 

C언어 - While문 이용하여 * 별로 삼각형 만들기

만들고자 하는 삼각형의 모양은 임의의 숫자를 입력받아 그 숫자만큼의 크기의 삼각형을 만들어내는 것이다. 숫자가 5라면 아래와 같은 삼각형이 나와야 한다. * ** *** **** ***** 코드를 짜면 다음�

tildacoderecorder.tistory.com

 

이번 글에서는 거꾸로 위에서 부터 아래로 별이 적어지는 삼각형을 만들 것이다.

다만 임의의 숫자를 입력받아 삼각형의 크기를 정할 것이다.

*****
****
***
**
*
cs

이 삼각형은 5를 입력받아 5줄로 삼각형을 만든 것이다.

 

큰 틀은 저번 글에서 만든 삼각형 만들기와 같다. While문을 두번 사용해 5행 5열의 공간을 만들어줘야 한다.

완성된 코드는 이와 같다.

#include <stdio.h>
 
int main()
{
  int i=1,j=1,num;
  scanf("%d",&num);
 
  while(i<=num){
    j=num;
 
    while(j>=i){
      printf("*");
      j--;
    }
 
    printf("\n");
    i++;
  }
 
 return 0;
}
cs

 

이제 순서대로 뜯어보자.

int i=1,j=1,num;
  scanf("%d",&num);
cs

 

오와 열의 변수인 i와 j, 그리고 입력받을 숫자인 num 변수를 선언한다.

임의의 숫자를 입력받아야 하기 때문에 scanf도 사용해준다.

while(i<=num){
    j=num;
    while(j>=i){
      printf("*");
      j--;
    }
    printf("\n");
    i++;
  }
cs

 

이미 저번 글에서 원리를 자세히 설명했으므로 이번 글에서는 조각 조각 뜯어 보지 않고 설명할 것이다.

 

i는 열, 즉 줄의 갯수를 뜻하고 j는 행, 별을 몇 개 찍을 것인가를 결정한다.

num이 5라고 예를 들었을 때, 1열에는 별이 5개, 2열에는 별이 4개 찍혀야 한다.

즉 i는 전과 같이 증가하되, 별의 갯수인 j는 작아져야 하는 것이다.

 

첫번재 while문을 적은 후

1열의 별의 갯수는 입력받은 숫자와 동일하니 먼저 j=num;을 적어준다.

이제

두번쨰 while문이 전과 다르므로 뜯어봐야 하는 부분이라고 볼 수 있다.

j=num;
    while(j>=i){
      printf("*");
      j--;
    }
cs

j는 계속 작아지다가도 열의 갯수보다는 작아질 수 없으니 조건문은 j>=i가 된다.

printf("*")로 별을 찍고 j--; 로 j를 1 감소시킨다.

 

이 과정을 두 while 사이를 돌며 반복하게 되면

 

 

쉽게 역삼각형을 확인할 수 있게 된다.

 

 

 

더 자세한 설명을 위해서는 전 글 참조.

tildacoderecorder.tistory.com/1?category=918749

 

C언어 - While문 이용하여 * 별로 삼각형 만들기

만들고자 하는 삼각형의 모양은 임의의 숫자를 입력받아 그 숫자만큼의 크기의 삼각형을 만들어내는 것이다. 숫자가 5라면 아래와 같은 삼각형이 나와야 한다. * ** *** **** ***** 코드를 짜면 다음�

tildacoderecorder.tistory.com

 

반응형