문제풀기(1)
Input, Output의 예제를 참고하여, n층의 삼각형을 출력하는 프로그램을 작성하여라.
입력
첫째 줄에 정수n이 주어진다. (0≤n≤100)
출력
다음 예제와 같이 삼각형 모양으로 ‘*’을 출력한다.
직각삼각형 만들기 1
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++) //(1) 줄의 개수를 결정해주는 for문(줄바꿈을 위한 것)
{
for (int j = 1; j <= i; j++) //(2) 별을 출력하는 for문 j가 i만큼 돌아서 삼각형 출력
{
printf("*");
}
printf("\n");
}
return 0;
}
(1) n행이 결정된다.
(2)별의 개수를 정하는 for문으로 i값과 별을 찍는 개수가 같다.
다시 (1)로! 각 행이 별을 다 출력하면 줄을 바꿔주고 다시 i를 증가시킨다.
j 반복문이 반복하는 횟수는 바깥 i의 값을 포함한다. 그러므로 j(1)<=i(1)이라면 2번 반복이 실행된다.
i가 2일 때 안쪽 반복문은 0~2까지 3번 반복
더보기
n=9라고 가정,
(1)에서 i가 1일 때 i<=9를 만나고 증감값이 실행되지 않고 (2) for문으로 들어간다.
두번째 for문에서 j값이 1인 상태에서 j<=i까지 돈다. (처음 별이 1개여야하니까)
첫번째 별을 찍을 때, i=1, j=1인 상태에서 1<=1 만나면 아직 i랑 j랑 같으니까 한번 실행 (*)
j를 증가시키면, 비교할 때 i=1, j=2이니까 조건식에서 2<=1이 된다.
2는 1보다 작으니까 (2)for문을 탈출해서, (1)for문에서 줄바꿈(/n)을 해주고 i++ 되고, 이 과정을 반복한다.
'C언어' 카테고리의 다른 글
[배열] 최댓값을 구하고, 몇번째 수인지 구하기 (0) | 2021.01.09 |
---|---|
[배열 활용하기] 역으로 출력하기 (0) | 2021.01.09 |
소수 판별식 (0) | 2021.01.06 |
이중 for문에 대한 이해(3) (0) | 2021.01.06 |
이중 for문에 대한 이해(2) (0) | 2021.01.06 |