티스토리 뷰
반응형
for whileC언어 별찍기 # for while
모든 강의 자료 : www.codingnow.co.kr/
아래 그림과 같이 별을 for, while을 이용하여 표현해 보자.
표현할 별의 수를 입력 받는다.
num = num +1은 입력 받은 수에서 하나더 찍어 보기 위해서 넣었다.
printf("Enter number : ");
scanf("%d",&num);
num = num +1;
입력 수에서 2배를 찍어야 한다.
while(cnt<num*2)
{
}
입력수에서 증감하는 방향과 감소하는 방향을 잡아 준다.
5입력 하면 0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 0으로 step이 증감한다.
if((cnt%num) == 0)
{
location = ~location;
if(location)
{
step = 0;
}else{
step = num;
}
}
if(location)
{
step++;
}else{
step--;
}
왼쪽 오른쪽의 별을 for루프를 증감방향 감소 방향으로 구현한다.
for(int i=0; i<num; i++)
{
if(i<step){
printf("*");
}else{
printf(" ");
}
}
for(int i=(num-1); i>-1; i--)
{
if(i<step){
printf("*");
}else{
printf(" ");
}
}
printf("\n");
전체 소스코드 이다.
#include <stdio.h>
int main(void)
{
int num;
printf("Enter number : ");
scanf("%d",&num);
num = num +1;
int cnt = 0;
int step = 0;
char location = 0;
while(cnt<num*2)
{
if((cnt%num) == 0)
{
location = ~location;
if(location)
{
step = 0;
}else{
step = num;
}
}
if(location)
{
step++;
}else{
step--;
}
for(int i=0; i<num; i++)
{
if(i<step){
printf("*");
}else{
printf(" ");
}
}
for(int i=(num-1); i>-1; i--)
{
if(i<step){
printf("*");
}else{
printf(" ");
}
}
printf("\n");
cnt++;
}
return 0;
}
반응형
'C언어 강의' 카테고리의 다른 글
C언어 # 2진수를 10진수로 변환하기 (0) | 2020.04.21 |
---|---|
C언어 # scanf while을 이용한 문자열 찾기 (0) | 2020.04.21 |
C언어 기초 문법을 이용한 정수 맞추기 게임 - 씨에프랩 (0) | 2020.04.19 |
C언어 기초 # 10진수를 2진수로 변환하기 - 씨에프랩 (0) | 2020.04.19 |
C언어 별을 출력 # for do while을 이용 (0) | 2020.04.17 |