C언어 별찍기



C언어 별찍기


문제 : N줄인 삼각형을 표시한다. 단, 사용자로 부터 임의의 N을 입력받는다


input : 3


output :

  *

 ***

*****


1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main() {
   int i, j, k, n;
   printf("몇줄을 만들거야? : ");
   scanf_s("%d"&n);
   for(i=0; i < n; i++) {
      for(j = n-1; j > i; j--)
         printf(" ");
      for(k = 0; k < 2 * j + 1; k++)
         printf("*");
   pirntf("\n");
   }
   return 0;
}
cs

설명 : 3을 입력받았다고 가정하에, for문안에 for문을 두개 넣는데 처음 for문은 줄 갯수로 생각을 하면 된다.
두번째 for문은 몇칸을 띄어쓰기 할 것인지 생각을 하면 된다. j=n-1로 초기화 해줬다. 반복문을 돌리면 2칸을 띄어쓰기 해줘야 되니 n-1을 했다.
그리고 조건값은 j>i로 해줬다. 현재 j=2다. 증감값도 1씩 줄어들고 있다.
띄어쓰기를 2칸 해줘야 하니, j를 i (i=0)까지 돌려야 된다. 그럼 for문은 두번 돌아간다.

세번째 for문은 *을 출력해주는거다. 2*j+i를 해준 이유는 첫번째 루틴 for문이 돌아갈때 j값은 0이다.
(위의 for문에서 j가 -를 해주니 0이 되었다.) 그럼 2*0+1=1이 된다 *는 한번만 출력이 된다.

두번째 루틴이 왔을때 j는 1이 된다. (위의 for문에서 조건값이 j>i이니 2>1이 된다. 그럼 for문은 한번만 돌으니 j값은 1이 된다.)
그럼 2*1+1=3이 된다. 그럼 *는 3번만 출력이 된다. 이해가 됬을것이다.
마지막은 줄바꿈을 해준다.


문제 : 위와 동일한 형태를 취하되, 역 삼각형을 출력한다. 아래는 N=3일때 출력 예시 이다.

input : 3

output :
*****
 ***
  *

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
int main() {
    int i, j, k, n;
    printf("몇줄 출력할거야? : ");
    scanf_s("%d"&n);
    for(i = 0; i < n; i++) {
       for(j = 0; j < i; i++)
          printf(" ");
       for(k = n * 2 - 1; k > 2 * j; k++)
          printf("*");
    printf("\n");
    }
    return 0;
}
cs

코드를 분석해보면 안다. 위의 내용과 거의 똑같다.





문제 : 자연수 N을 입력받아 출력처럼 원하는 줄수 만큼 출력하시오.


input : 3


output :

*

**

***


1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main()
{
    int a;
    scanf_s("%d"&a);
    for (int i = 0; i < a; i++) {
        for (int j = 0; j <= i; j++)
            printf("*");
        printf("\n");
    }
    return 0;
}
cs


설명 : 첫번째 반복문에서 3줄을 만들어야 하니 조건값을 a로 해줬다. (3줄을 출력)

코드를 분석해보면 알것이다. 한번 그림을 그려서라든지 머리로 해보던지

나의 블로그 제목과 같이 코드를 분석하자.



문제 : 자연수 N을 입력받아 출력처럼 원하는 줄수 만큼 출력하시오.


input : 3


output :

***

**

*


1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main()
{
    int a;
    scanf_s("%d"&a);
    for (int i = 0; i < a; i++) {
        for (int j = a; j > i; j--)
            printf("*");
        printf("\n");
    }
    return 0;
}
cs

설명 : 코드를 분석해라!

댓글

Designed by JB FACTORY