본문 바로가기
c언어

c언어 while문 직접 사용해보면서 간단한 예제 풀어보기(구구단 출력하기, 제곱 값 출력하기, 1부터 n까지의 정수의 합 구하기, 입력한 수 까지 중 짝수의 합 구하기, 입력한 값들의 합 구하기)

by 개발자 L 2022. 12. 4.
반응형

c언어 while문 직접 사용해보면서 간단한 예제 풀어보기(구구단 출력하기, 제곱 값 출력하기, 1부터 n까지의 정수의 합 구하기, 입력한 수 까지 중 짝수의 합 구하기, 입력한 값들의 합 구하기)

네 안녕하세요, 이번 포스팅에서는 이전 시간에 배웠던 while문을 직접 사용을 해보면서 간단한 예제를 풀어보고 코딩 실력을 늘리는 시간을 가져보려 합니다.

실제로 반복문은 정말 많이 쓰이기 때문에 자주 써봐야 문법을 기억하고 직접 쓸 수가 있습니다.

그럼 지금부터 같이 보시죠.

 

1. while문으로 구구단 출력하기

예전에 배웠던 문법으로는 구구단을 전부 다 출력을 했었습ㄴ다.

하지만 while문을 이용을 하면 우리가 원하는 단만 출력을 할 수가 있습니다.

그럼 바로 코드를 작성을 해보도록 하겠습니다.

#include <stdio.h>

int main()

{
    int n;
    int i = 1;

    printf("보고싶은 단 수를 입력하세요 : ");
    scanf("%d", &n);
    
    while(i <= 9)
    {
        printf("%d * %d = %d\n", n, i, n * i);
        i++;
    }

    return 0;
}

이렇게 작성을 했습니다.

그리고 여기서는 이하를 썼는데,

i의 초기값을 1로 잡았기 때문입니다.

원래 프로그래밍 언어에서는 0부터 세지만,

구구단의 경우는 0단은 존재하지 않으므로 초기값을 1로 뒀고,

0을 세지 않기 때문에 9 미만으로 두면 안되기에 9 이하로 설정을 했습니다.

그럼 결과를 한 번 보도록 하겠습니다.

보고싶은 단 수를 입력하세요 : 4
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
4 * 5 = 20
4 * 6 = 24
4 * 7 = 28
4 * 8 = 32
4 * 9 = 36

이렇게 잘 나오는 것을 볼 수가 있습니다.

 

2. while문으로 제곱 값 출력하기

while문을 쓰면 원하는 범위 안에 있는 숫자들의 제곱 값을 출력할 수도 있습니다.

구구단을 작성하는 코드보다 훨씬 난이도가 쉽습니다.

그럼 바로 보여드리도록 하겠습니다.

#include <stdio.h>

int main()

{
    int n = 1;

    printf("    n  n의 제곱\n");
    
    while(n <= 10)
    {
        printf("%5d %5d\n", n, n * n);
        n++;
    }

    return 0;
}

이렇게 한 번 작성을 해봤습니다.

이걸 실행을 하면 1부터 10까지의 제곱 값이 나올 겁니다.

그리고 0을 넣지 않은 이유는 0은 제곱을 아무리 해도 0이기도 하고,

굳이 여기에서 세어봐야 의미가 없기 때문에 0은 건너뛰었습니다.

그럼 결과도 같이 보시죠.

    n  n의 제곱
    1     1
    2     4
    3     9
    4    16
    5    25
    6    36
    7    49
    8    64
    9    81
   10   100

이렇게 나옵니다.

정말 잘 나오는 것을 확인을 할 수가 있습니다.

반응형

 

3. while문을 이용하여 1부터 임의의 수 n까지의 합 구하기

반복문을 이용하면 범위를 정할 수 있기 때문에 임의의 수까지의 합을 구할 수가 있습니다.

우리가 입력하는 숫자가 임의의 수가 되고, 컴파일러는 그 수가 있는 범위까지 알아서 연산을 진행합니다.

그럼 바로 코드를 작성을 해보도록 하겠습니다.

#include <stdio.h>

int main()

{
    int i, n, sum;

    printf("정수를 입력하세요 : ");
    scanf("%d", &n);

    i = 1;
    sum = 0;
    
    while(i <= n)
    {
        sum += i;
        i++;
    }

    printf("1부터 %d까지의 합은 %d입니다.\n", n, sum);
    
    return 0;
}

이렇게 작성을 했습니다.

여기에서 쓴 것은 i값이 증가를 계속하고,

그 값을 합하라는 뜻입니다.

그럼 결과를 한 번 보도록 하겠습니다.

정수를 입력하세요 : 5
1부터 5까지의 합은 15입니다.

이렇게 잘 나오는 것을 보실 수가 있습니다.

 

4. while문을 이용하여 임의의 정수를 입력한 후, 짝수의 합만 출력하기

이번에는 바로 전 예제를 조금 변경을 해서 짝수의 합만 구해보도록 하겠습니다.

그럼 바로 보시죠.

#include <stdio.h>

int main()

{
    int i, n, sum;

    printf("정수를 입력하세요 : ");
    scanf("%d", &n);

    i = 0;
    sum = 0;
    
    while(i <= n)
    {
        sum += i;
        i = i + 2;
    }

    printf("1부터 %d까지의 짝수합은 %d입니다.\n", n, sum);

    return 0;
}

이렇게 한 번 작성을 했습니다.

여기에서는 i의 초기값을 0으로 주었는데요,

그 이유는 프로그래밍 언어에서도 그렇고, 아라비아 숫자에서도 그렇고 0은 짝수이기 때문입니다.

그래서 0을 넣어줬습니다.

물론 0을 초기값으로 주지 않고 1을 주어도 괜찮지만, 원칙적으로는 0도 넣어야 합니다.

그리고 여기서는 예외적으로 자기 자신까지 세어야 하기 때문에 범위는 이하로 잡았습니다. 

그럼 결과를 한 번 보도록 하겠습니다.

정수를 입력하세요 : 7
1부터 7까지의 짝수합은 12입니다.

이렇게 잘 나오는 것을 볼 수가 있습니다.

 

5. while문을 이용하여 입력한 숫자들의 합 구하기

이번에는 본인이 입력을 한 숫자들만 합하는 프로그램을 짜 보도록 하겠습니다.

이것도 생각보다 간단합니다.

이전에 작성한 로직에서 조금만 수정을 하면 됩니다.

그럼 코드를 한 번 작성해보도록 하겠습니다.

#include <stdio.h>

int main()

{
    int i, n, sum;

    i = 0;
    sum = 0;
    
    while(i < 5)
    {
        printf("정수를 입력하세요 : ");
        scanf("%d", &n);
        sum += n; // sum = sum + n;과 같음.
        i++;
    }

    printf("입력한 숫자들의 합은 %d입니다.\n", sum);

    return 0;
}

이렇게 한 번 작성을 해봤습니다.

여기서 주의를 할 점은 숫자 입력을 연속적으로 해야 하기 때문에 while문 안에 printf()와 scanf()를 넣어줘야 한다는 것입니다.

그렇지 않으면 한 번만 실행이 되어 코드가 작동되지 않습니다.

그럼 결과를 한 번 보도록 하겠습니다.

정수를 입력하세요 : 10
정수를 입력하세요 : 12
정수를 입력하세요 : 45
정수를 입력하세요 : 22
정수를 입력하세요 : 3
입력한 숫자들의 합은 92입니다.

이렇게 결과가 잘 나오는 것을 볼 수가 있습니다.

이제 여러분들은 while문을 쓰는 방법에 대하여 알게 되었습니다.

 

여기까지 while문을 사용하여 예제들을 풀어보며 코딩 실력을 키우는 시간을 가져보았는데요,

다음 포스팅에서는 보초 값을 사용하는 방법에 대하여 알아보도록 하겠습니다.

긴 글 읽어주신 독자분들께 진심으로 감사합니다.

반응형

댓글