티스토리 뷰
--------------------------------------- 이하 2018년 12월 9일
직각삼각형 출력
#include <stdio.h>
int main(void)
{
int nInput, column, raw;
scanf_s("%d", &nInput);
for (raw=1;raw <= nInput;++raw)
{
for (column=1;column <= nInput-raw;column++)
putchar('\t');
for (; nInput - column >= 0; column++)
printf("*\t");
putchar('\n');
}
return 0;
}
------------------- 결과
10 입력 후 엔터
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *
Process exited after 2.22 seconds with return value 0
계속하려면 아무 키나 누르십시오 . . .
[주석]
#include <stdio.h>
int main(void)
{
}
scanf_s("%d", &nInput);
int column, raw;
for (raw=1;raw <= nInput;++raw) // 1열부터 입력받은 nInput열까지 반복
{
for (column=1;column <= nInput-raw;column++) // 빈칸을 찍기위한 for문.
// 각열의 첫번째 컬럼부터 nInput-현재열 반복(10열이면 9회등)
// 빈 칸을 찍기위한 for문이라 nInput-현재열 번호로 계산
// ex) 첫번째 열은 10-1, 두번째 10-2.. 짝어야할 빈칸의 개수
putchar('\t');
for (; nInput - column >= 0; column++) // 별을 찍기위한 for문.
// 빈칸을 찍기위한 for문에서 최종의 column값이 10,9,8...
// nInput은 최초 입력한 상수이므로 10이면 별하나, 9면 별둘...
printf("*\t");
putchar('\n'); // 컬럼을 다 채우면 개행
}
return 0;
}
--------------------------------------- 이하 2018년 12월 9일
위의 코드와 99% 동일한데 직각삼각형이 아닌 이등변 삼각형이 결과물임.
왜그럴까? 단순히 Tab을 space로만 바꿈. 컬럼 줄을 맞춰주는 tab이 원인임.
이등변 삼각형 출력
#include <stdio.h>
int main(void)
{
int nInput, column, raw;
scanf_s("%d", &nInput);
for (raw=1;raw <= nInput;++raw)
{
for (column=1;column <= nInput-raw;column++)
putchar(' '); // space로 바꿈
for (; nInput - column >= 0; column++)
printf("* "); // space로 바꿈
putchar('\n');
}
return 0;
}
------------------- 결과
10 입력 후 엔터
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *
Process exited after 2.394 seconds with return value 0
계속하려면 아무 키나 누르십시오 . . .
--------------------------------------- 이하 2016년 9월 19일
#include <stdio.h>
//#define HEIGHT 5
int main()
{
int HEIGHT;
printf("몇층으로 만들까요?(2 이상 숫자를 입력해주세요.)");
scanf("%d",&HEIGHT);
for(int i=1;i<HEIGHT*2;i++)
{
if(i%2==0)
continue;
for(int k=0;k<(HEIGHT*2-i)/2;k++)
printf(".");
for(int j=1;j<=i;j++)
printf("*");
printf("\n");
}
return 0;
}
결과:
--------------------------------------------------------------------------------------
몇층으로 만들까요?(2 이상 숫자를 입력해주세요.)10
.........*
........***
.......*****
......*******
.....*********
....***********
...*************
..***************
.*****************
*******************
(점은 몇 칸이나 띄워지는지를 나타내기 위해 표시함)
'Test > C' 카테고리의 다른 글
1차원 배열에서 최대값 구하기 (0) | 2018.12.10 |
---|---|
break, continue (0) | 2018.12.09 |
[자료구조-1] 배열 직접 정의와 malloc의 차이 (0) | 2018.12.08 |
[자료구조-1] 포인터 (0) | 2018.12.08 |
vsual studio 단축키 (0) | 2018.12.08 |
- Total
- Today
- Yesterday
- powercli
- 대소문자
- powershell
- vmware.powercli
- cloud-init
- 배열
- 차집합
- virt-sysprep
- fromkeys
- exadata
- 제곱
- storage
- 중복제거
- 스토리지
- dp-1
- 변수화
- oracle
- EXA
- 3par
- Append
- set()
- sysprep
- dp-2
- 부동없이
- vmware
- Join
- 읽어오기
- 정렬
- LIST
- insert
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |