본문 바로가기

프로그램언어/C언어

c언어 반복문(for, while, do ~ while)

1. 반복문은 특정 조건을 만족하는 동안 계속 반복하여 실행하는 제어문입니다. 반복 제어문에는 for문, while문, do ~ while문이 있습니다. 반복문종류에 대한 표현 형식을 알아 보겠습니다.

 

for 반복문 형식

    for( 초기값; 조건식; 증감식)

        명령문

while 반복문 형식

    while (조건식)

        명령문

do ~ while 반복문 형식

    do

        명령문

    while ( 조건식);

 

2. break문

break문은 현재 실행 중인 반복문에서 실행을 중단하고자 할 때 사용합니다. 앞에서 선택 제어문에서 보았듯이 switch문의 실행을 중단할 때도 사용했습니다.

 

3. continue문

break문은 반복문을 빠져나오지만 continue문은 한번 건너 뛰어 반복문을 계속 실행하게 하는 기능입니다. 예를 들어 1부터 5까지 출력하는데 3은 출력하지 않고 1, 2, 4, 5만 출력할 경우 선택문을 통해 i가 3일때 continue을 이용해 이부분만 건너 뛰어 다음으로 너머가서 계속 실행할 수 있습니다. 

 

예제를 통해 3가지 반복문에 대해서 알아보자.

 

3개의 반복문을 통해 1부터 5까지 출력하는 프로그램을 작성해 보겠습니다.

for문 while문 do ~ while문

 int i;

 for( i= 1; i <= 5; i++)

 {

     printf("%d ", i);

 }

 int i = 1;

 while(i <= 5)

 {

     printf("%d ", i);

     i++;

 }

 int i = 1;

 do

 {

     printf("%d ", i);

     i++;

 }while(i <= 5);

3개의 반복문을 통행 5부터 1까지 출력하는 프로그램을 작성해 보겠습니다.

for문 while문 do ~ while문

 int i;

 for( i= 5; i >= 1; i--)

 {

     printf("%d ", i);

 }

 int i = 5;

 while(i >= 1)

 {

     printf("%d ", i);

     i--;

 }

 int i = 5;

 do

 {

     printf("%d ", i);

     i--;

 }while(i >= 1);

3개의 반복문을 통해 1부터 10까지 사이의 수중 홀수만 출력하는 프로그램을 작성해 보겠습니다.

for문 while문 do ~ while문

 int i;

 for( i= 1; i <= 10; i+=2)

 {

     printf("%d ", i);

 }

 int i = 1;

 while(i <= 10)

 {

     printf("%d ", i);

     i+=2;

 }

 int i = 1;

 do

 {

     printf("%d ", i);

     i+=2;

 }while(i <= 10);

3개의 반복문을 통행 1부터 1씩 증가하는 무한 반복문 프로그램을 작성해 보겠습니다.

for문 for문 while문 do ~ while문

 int i;

 for( i= 1; 1; i++)

 {

     printf("%d ", i);

 }

 int i;

 for( i= 1;  ; i++)

 {

     printf("%d ", i);

 }

 int i = 1;

 while( 1 )

 {

     printf("%d ", i);

     i++;

 }

 int i = 1;

 do

 {

     printf("%d ", i);

     i++;

 }while( 1 );

3개의 반복문을 통해 무한 반복문에서 i가 10일때 빠져나오는 프로그램을 작성해 보겠습니다.

for문 while문 do ~ while문

 int i;

 for( i= 1; 1; i++)

 {

     printf("%d ", i);

     if( i == 10 )

         break;

 }

 int i = 1;

 while( 1 )

 {

     printf("%d ", i);

     if( i == 10 )

         break;

     i++;

 }

 int i = 1;

 do

 {

     printf("%d ", i);

     if( i == 10 )

         break;

     i++;

 }while( 1 );

3개의 반복문을 통해 무한 반복문에서 10이 되면 빠져나오고 짝수만 출력하는 프로그램을 작성해 보겠습니다.

for문 while문 do ~ while문

 int i;

 for( i= 1; 1; i++)

 {

     if( i % 2 == 1 )

         continue;

     printf("%d ", i);

     if( i == 10 )

         break;

 }

 int i = 0;

 while( 1 )

 {

     i++;

     if( i % 2 == 1 )

         continue;

     printf("%d ", i);

     if( i == 10 )

         break;

 }

 int i = 0;

 do

 {

     i++;

     if( i % 2 == 1 )

         continue;

     printf("%d ", i);

     if( i == 10 )

         break;

 }while( 1 );

3개의 반복문을 통해 중첩 반복문으로 i와 j의 값을 출력하는 프로그램을 작성행 보겠습니다.

for문 while문 do ~ while문

 int i, j;

 for(i = 1; i <= 5; i++)
 {
     printf("i가 %d 일때 j는 ", i);
     for (j = 1; j <= 5; j++)
     {
         printf("%d ", j);
     }
     printf("\n");
 }

 int i, j;

 i = 1;
 while ( i <= 5)
 {
     printf("i가 %d 일때 j는 ", i);
     j = 1; 
     while (j <= 5)
     {
         printf("%d ", j);
         j++;
     }
     printf("\n");
     i++;
 }

 int i, j;

 i = 1;
 do
 {
     printf("i가 %d 일때 j는 ", i);
     j = 1;
     do
     {
         printf("%d ", j);
         j++;
     }while (j <= 5);
     printf("\n");
     i++;
 }while (i <= 5);

 i가 1 일때 j는 1 2 3 4 5

 i가 2 일때 j는 1 2 3 4 5

 i가 3 일때 j는 1 2 3 4 5

 i가 4 일때 j는 1 2 3 4 5

 i가 5 일때 j는 1 2 3 4 5

 i가 1 일때 j는 1 2 3 4 5

 i가 2 일때 j는 1 2 3 4 5

 i가 3 일때 j는 1 2 3 4 5

 i가 4 일때 j는 1 2 3 4 5

 i가 5 일때 j는 1 2 3 4 5

 i가 1 일때 j는 1 2 3 4 5

 i가 2 일때 j는 1 2 3 4 5

 i가 3 일때 j는 1 2 3 4 5

 i가 4 일때 j는 1 2 3 4 5

 i가 5 일때 j는 1 2 3 4 5

문제1] 반복문을 이용하여 1부터 10까지 출력하시오.(for, while, do~while 3가지로 모두 실행)

 

출력 예]

1 2 3 4 5 6 7 8 9 10

 

 

문제2] 반복문을 이용하여 1부터 20까지 숫자 중 짝수만 출력하시오.(for, while, do~while 3가지로 모두 실행)

 

출력 예]

2 4 6 8 10 12 14 16 18 20

 

 

문제3] 반복문을 이용하여 1부터 20까지 숫자 중 홀수만 출력하시오.(for, while, do~while 3가지로 모두 실행)

 

출력 예]

1 3 5 7 9 11 13 15 17 19

 

 

문제4] 반복문을 이용하여 1부터 20까지 숫자 중 짝수만 출력하시오.(for, while, do~while 3가지로 모두 실행, if문으로 조건 짝수의 조건설정)

 

출력 예]

2 4 6 8 10 12 14 16 18 20

 

 

문제5] 반복문을 이용하여 1부터 20까지 숫자 중 홀수만 출력하시오.(for, while, do~while 3가지로 모두 실행, if문으로 조건 홀수의 조건설정)

 

출력 예]

1 3 5 7 9 11 13 15 17 19

 

 

문제6] 정수 한 개를 입력 받아 1부터 입력 받은 숫자까지 자연수를 출력하시오.

입력 예]

5

 

출력 예]

1 2 3 4 5

 

 

문제7] 정수 한 개를 입력 받아 1부터 입력 받은 숫자까지 자연수들의 합을 출력하시오.

입력 예]

5

 

출력 예]

15

 

 

문제8] 정수 한 개를 입력 받아 1부터 입력 받은 수사이의 짝수의 합을 출력하시오.

입력 예]

10

 

출력 예]

30

 

 

문제9] 정수 한 개를 입력 받아 1부터 입력 받은 수사이의 홀수의 합을 출력하시오.

입력 예]

10

 

출력 예]

25

 

 

문제10] 정수 한 개를 입력 받아 1부터 입력 받은 수사이의 짝수의 개수를 출력하시오.

입력 예]

10

 

출력 예]

5

 

 

문제11] 정수 한 개를 입력 받아 1부터 입력 받은 수사이의 홀수의 개수를 출력하시오.

입력 예]

10

 

출력 예]

5

 

 

문제12] 정수 한 개를 입력 받아 1부터 입력 받은 수사이의 짝수들의 합과 평균을 출력하시오.

입력 예]

10

 

출력 예]

30 6

 

 

문제13] 정수 한 개를 입력 받아 1부터 입력 받은 수사이의 홀수들의 합과 평균을 출력하시오.

입력 예]

10

 

출력 예]

25 5

 

 

문제14] 정수 한 개를 입력 받아 1부터 입력 받은 수사이의 3의 배수의 합과 평균을 출력하시오.

입력 예]

50

 

출력 예]

408 25

 

 

문제15] 정수 한 개를 입력 받아 1부터 입력 받은 수사이의 5의 배수의 합과 평균을 출력하시오.

입력 예]

30

 

출력 예]

105 17

 

 

문제16] 정수 한 개를 입력 받아 1부터 입력 받은 수사이의 3의 배수이면서 5의 배수의 합과 평균을 출력하시오.

입력 예]

50

 

출력 예]

90 30

 

 

문제17] 정수를 입력받다가 0이 입력되면 그 때까지 입력한 수들의 합을 출력하시오.

입력 예]

7 10 25 53 27 8 0

 

출력 예]

130

 

 

문제18] 0 ~ 100 사이의 정수를 입력받다가 그 범위를 벗어나는 수가 입력되면 그 이전까지 입력한 수들의 합을 출력하시오.

입력 예]

75 86 45 90 100 60 0 70 50 101

 

출력 예]

576

 

 

문제19] 정수를 입력받다가 0이 입력되면 그 이전까지의 입력한 수들의 개수와 합과 평균을 출력하시오.(평균은 반올림하여 소수 첫째자리까지 표시)

입력 예]

80 65 74 96 82 62 75 0

 

출력 예]

합계 : 534

개수 : 7

평균 : 76.3

 

 

문제20] 0 ~ 100 사이의 정수를 입력받다가 그 범위를 벗어나는 수가 입력되면 그 이전까지 입력한 수들의 합과 평균을 출력하시오.(평균은 반올림하여 소수 첫째자리까지 표시)

입력 예]

75 86 45 90 100 60 0 70 50 101

 

출력 예]

합계 : 576

평균 : 64.0

 

 

문제21] 두 개의 정수를 입력받아 두 정수 사이에 자연수의 합을 출력하시오.

입력 예] 입력 예]

10 20 30 10

 

출력 예] 출력 예]

합계 : 165 420

 

 

문제22] 두 개의 정수를 입력받아 두 정수 사이에 자연수중 3의 배수이거나 5의 배수가 아닌 수들의 개수를 출력하시오.

입력 예]

10 30

 

출력 예]1

합계 :11

 

 

문제23] 10이하의 정수를 입력받아 입력받은 수만큼 반복 실행하여 각각의 점수를 입력하고 합과 평균을 출력하시오.

입력 예]

5

72 70 90 84 64

 

출력 예]

합계 : 381

평균 : 76.2

 

 

문제24] 한 개의 정수를 입력받아 다음과 같이 출력하시오.

입력 예]

3

 

출력 예]

1 2 3

1 2 3

1 2 3

 

 

문제25] 한 개의 정수를 입력받아 다음과 같이 출력하시오.

입력 예]

3

 

출력 예]

1 2 3

2 4 6

3 6 9

 

 

문제26] 한 개의 정수를 입력받아 다음과 같이 출력하시오.

입력 예]

3

 

출력 예]

2 3 4

3 4 5

4 5 6

 

 

문제27] 두 개의 정수를 입력 받아 다음과 같이 출력하시오.

입력 예]

3 4

 

출력 예]

1 2 3 4

2 4 6 8

3 6 9 12

 

 

문제28] 한 개의 정수를 입력 받아 다음과 같이 출력하시오.

입력 예]

5

 

출력 예]

*

**

***

****

*****

 

 

문제29] 한 개의 정수를 입력 받아 다음과 같이 출력하시오.

입력 예]

5

 

출력 예]

*****

****

***

**

*

 

 

문제30] 한 개의 정수를 입력 받아 다음과 같이 출력하시오.

입력 예]

5

 

출력 예]

    *

   **

  ***

 ****

*****

 

문제31] 한 개의 정수를 입력 받아 다음과 같이 출력하시오.

입력 예]

5

 

출력 예]

*****

 ****

  ***

   **

    *

 

 

 

문제32] 한 개의 정수를 입력 받아 다음과 같이 출력하시오.

입력 예]

5

 

출력 예]

    *

   ***

  *****

 *******

*********

 

 

문제33] 한 개의 정수를 입력 받아 다음과 같이 출력하시오.

입력 예]

5

 

출력 예]

*

**

***

**

*

 

 

문제34] 한 개의 정수를 입력 받아 다음과 같이 출력하시오.

입력 예]

5

 

출력 예]

*****

***

*

***

*****

 

 

문제35] 한 개의 정수를 입력 받아 다음과 같이 출력하시오.

입력 예]

5

 

출력 예]

    *

   ***

  *****

 *******

*********

 *******

  *****

   ***

    *

 

 

문제36] 한 개의 정수를 입력 받아 다음과 같이 출력하시오.

입력 예]

3

 

출력 예]

A B C

D E 1

F 2 3

 

 

문제37] 한 개의 정수를 입력 받아 다음과 같이 출력하시오.

입력 예]

3

 

출력 예]

1 3 5

7 9 1

3 5 7

 

 

문제38] 삼각형의 밑변의 길이와 높이를 입력받아 넓이를 출력하고, “계속하시겠습니까?”에서 하나의 문자를 입력받아 그 문자가 'Y''y'이면 작업을 반복하고 다른 문자이면 종료하는 프로그램을 작성하시오. (넓이는 반올림하여 소수 첫째자리까지 출력한다.)

 

입력 예]

밑변의 길이 = 11

높이 = 5

계속하시겠습니까? Y

밑변의 길이 = 10

높이 = 10

계속하시겠습니까? N

 

출력 예]

입력한 삼각형의 넓이는 27.5입니다.

입력한 삼각형의 넓이는 50.0입니다.

 

 

문제39] 아래와 같이 구구단을 출력하시오. 형식: _*_=_._._._

 

출력 예]

 

'프로그램언어 > C언어' 카테고리의 다른 글

c언어 포인터  (0) 2019.10.02
c언어 배열  (0) 2019.10.02
c언어 선택문 (if, switch)  (0) 2019.10.01
c언어 연산자의 종류  (0) 2019.10.01
c언어 Scanf()함수  (0) 2019.09.30