프로그래밍/C

[C언어-응용문제] 숫자의 합 구하기(for, while)

록스타★ 2024. 11. 8. 09:35
반응형

숫자의 합 구하기

사용자가 0을 입력할 때까지 계속 숫자를 입력받고, 입력된 모든 숫자의 합을 구해 출력하는 프로그램입니다.

 

사용 개념:

반복문(while): 조건을 만족하는 동안 계속 반복 수행

누적합: 반복하면서 값을 계속 더해 나감

조건문(if): 특정 조건을 만족할 때 특정 동작을 수행

 


풀이 방법

  1. 변수 초기화
    1. sum이라는 변수를 선언하고 0으로 초기화하고, sum은 입력된 숫자들을 계속 더해 나가면서 누적합을 저장합니다.
    2. num이라는 변수를 선언해, 사용자가 입력하는 숫자를 저장합니다.
  2. 숫자 입력받기와 반복 시작
    1. while 문을 사용해, 사용자가 입력한 숫자가 0이 아닐 때까지 계속해서 숫자를 입력받습니다.
    2. printf로 안내 메시지를 출력해 사용자가 숫자를 입력하도록 유도하고, scanf를 통해 숫자를 입력받아 num 변수에 저장합니다.
  3. 누적합 계산
    1. 입력된 숫자(num)를 sum에 더해 누적합을 구합니다.
  4. 종료 조건 확인
    1. 사용자가 0을 입력하면 while 반복문이 종료되고, 최종 합계를 출력합니다.

 


while 코드

#include <stdio.h>

int main() {
    int num;  // 사용자가 입력한 숫자를 저장할 변수
    int sum = 0;  // 입력된 숫자의 합을 저장할 변수, 초기값은 0

    // 1. 반복문 시작 - 0이 입력될 때까지 숫자를 계속 입력받습니다.
    while (1) {
        printf("숫자를 입력하세요 (종료하려면 0 입력): ");
        scanf("%d", &num);

        // 2. 입력된 숫자가 0이면 반복문을 종료합니다.
        if (num == 0) {
            break;
        }

        // 3. 입력된 숫자를 합계에 더합니다.
        sum += num;
    }

    // 4. 최종 합계를 출력합니다.
    printf("입력한 숫자의 합: %d\n", sum);

    return 0;  // 프로그램이 정상 종료됨을 알립니다.
}

코드 설명

 

변수선언과 초기화

  1. int num;은 사용자가 입력한 숫자를 저장하기 위한 변수입니다.
    1. int sum = 0;은 누적합을 저장하기 위한 변수이며, 처음에는 합산할 값이 없으므로 0으로 초기화합니다.
  2. 숫자 입력받기와 반복문 실행
    1. while (1)은 무한 반복문을 시작하며, 조건이 항상 참(1)이므로 break 문이 나올 때까지 계속 실행됩니다.
    2. printf("숫자를 입력하세요 (종료하려면 0 입력): ");는 사용자가 숫자를 입력하도록 안내하는 메시지입니다.
    3. scanf("%d", &num);은 사용자가 입력한 숫자를 num 변수에 저장합니다.
  3. 종료 조건 확인
    1. if (num == 0) 조건문으로, 입력된 숫자가 0인지 확인합니다.
    2. 만약 0이 입력되면 break;로 while 반복문을 종료합니다.
  4. 누적합 계산
    1. sum += num;은 현재 sum 값에 num 값을 더하여 누적합을 구하는 코드입니다.
  5. 최종 합계 출력
    1. printf("입력한 숫자의 합: %d\n", sum);는 반복문이 종료된 후, 모든 입력된 숫자의 합을 출력합니다.
  6. 프로그램 종료
    1. return 0;은 프로그램이 정상적으로 종료되었음을 시스템에 알립니다.

 


for문 코드

#include <stdio.h>

int main() {
    int num;   // 사용자가 입력한 숫자를 저장할 변수
    int sum = 0;  // 입력된 숫자의 합을 저장할 변수, 초기값은 0

    // 1. 무한 반복을 위해 조건 없이 for문을 사용합니다.
    for (;;) {
        printf("숫자를 입력하세요 (종료하려면 0 입력): ");
        scanf("%d", &num);

        // 2. 입력된 숫자가 0이면 반복문을 종료합니다.
        if (num == 0) {
            break;
        }

        // 3. 입력된 숫자를 합계에 더합니다.
        sum += num;
    }

    // 4. 최종 합계를 출력합니다.
    printf("입력한 숫자의 합: %d\n", sum);

    return 0;  // 프로그램이 정상 종료됨을 알립니다.
}

코드 설명

  1. 무한 반복문 생성
    1. for(;;) 구문은 조건 없이 계속 반복하는 무한 루프를 만듭니다.
    2. for문에 조건을 생략하면 무한히 반복하므로 while (1)과 비슷한 역할을 합니다.
  2. 숫자 입력받기
    1. printf와 scanf를 사용해 사용자로부터 숫자를 입력받아 num 변수에 저장합니다.
  3. 종료 조건 확인
    1. if (num == 0)으로 입력된 숫자가 0인지 확인합니다.
    2. 숫자가 0이면 break 문으로 반복문을 종료합니다.
  4. 누적합 계산
    1. 입력된 숫자 num을 sum에 더해 누적합니다.
  5. 최종 합계 출력
    1. 반복문이 종료된 후, 모든 입력된 숫자의 합을 printf로 출력합니다.

 


for문에서 ; ; 사용하여 무한 반복을 만들고 brake를 넣어서 특정 숫자일 때 종료하게 만들었습니다~

반응형