티스토리 뷰

반응형

C언어 for do while을 이용한 별을 출력하기

이번 시간에는 이전 강의에서 설명되었던 for, do-while, scanf를 사용하여 ★를 출력하는 프로그래밍을 해 보겠습니다.

우선 입력받을 부분을 구현합니다.
printf를 사용하여 입력문구를 넣고 scanf를 사용하여 정수를 입력 받습니다.
scanf의 경우 enter 값이  다음 scanf에 영향을 주게 되어 fflush를 사용하여 입력 버퍼를 지워 줍니다.

printf("출력할 ★ 수를 입력하세요(0 이면 종료) : ");
scanf("%d",&target);
fflush(stdin); //scanf 입력 버퍼 지우기

do while을 사용하여 계속 반복하게 되고 입력 받은 정수값이 0이면 종료되는  시나리오 입니다.

입력반은 정수의 수만큼 ★를 for 루프를 사용하여 반복 출력합니다.

printf("                                            ");
for(int i = 0; i<target; i++)
{
	printf("★");
}
printf("\n");

여기 while에서 target이 0보다 큰 경우만 반복되게 됩니다.

즉 0이 입력 받으면 종료 됩니다.

do
{
  .
  .
  .
}while(target > 0);

이제 전체 소스를 보고 분석해 보세요~~

#include <stdio.h>
#include <windows.h> //system 명령 실행을 위해


void main(void)
{
  system("chcp 65001"); //gcc 한글 깨짐
  system("cls"); //화면지움

  int target;

  do
  {
    printf("출력할 ★ 수를 입력하세요(0 이면 종료) : ");
    scanf("%d",&target);
    fflush(stdin); //scanf 입력 버퍼 지우기

    printf("                                            ");
    for(int i = 0; i<target; i++)
    {
    	printf("★");
    }
    printf("\n");
  }while(target > 0);

  return;
}

실행하게 되면 아래와 같이 출력이 됩니다.

1부터 9까지 마지막에 0을 입력 받아 종료하게 됩니다.

--끝--

반응형