C언어(자기주도C언어프로그래밍)/Chapter06. 반복제어문1

자기주도C언어프로그래밍 Chapter06. 반복제어문1 - 형성평가

사상 2023. 2. 23. 17:00

1. 정수를 입력받아 1부터 입력받은 정수까지를 차례대로 출력하는 프로그램을 작성하시오.

입력 예

5

출력 예

1 2 3 4 5

 

#include <stdio.h>
int main(){
    int i = 1, num;

    scanf("%d", &num);

    while(i <= num){
        printf("%d ", i);
        i++;
    }
    return 0;
}

 

2. 정수를 입력받다가 0이 입력되면 그 때까지 입력받은 홀수의 개수와 짝수의 개수를 출력하는 프로그램을 작성하시오.

입력 예

9 7 10 5 33 65 0

출력 예

odd : 5

even : 1

 

#include <stdio.h>
int main(){
    int num, odd = 0, even = 0;

    while(1){
        scanf("%d", &num);
        if(num % 2 == 0 && num != 0)
            even++;
        else if(num % 2 != 0)
            odd++;


        if(num == 0)
            break;
    }
    printf("odd : %d\n", odd);
    printf("even : %d", even);

    return 0;
}

 

3. 0부터 100까지의 점수를 계속 입력받다가 범위를 벗어나는 수가 입력되면 그 이전까지 입력된 자료의 합계와 평균을 출력하는 프로그램을 작성하시오. (평균은 반올림하여 소수 첫째자리까지 출력한다.)

입력 예

55 100 48 36 0 101

출력 예

sum : 239

avg : 47.8

 

#include <stdio.h>
int main(){
    int num, sum = 0, cnt = 0;
    double avg;

    while(1){
        scanf("%d", &num);
        if(num < 0 || num > 100)
            break;
        sum += num;
        cnt++;
    }
    avg = (double)sum / cnt;
    
    printf("sum : %d\n", sum);
    printf("avg : %.1lf", avg);

    return 0;
}

 

4. 0이 입력될 때까지 정수를 계속 입력받아 3의 배수와 5의 배수를 제외한 수들의 개수를 출력하는 프로그램을 작성하시오.

입력 예

1 2 3 4 5 6 7 8 9 10 0

출력 예

5

 

#include <stdio.h>
int main(){
    int num, cnt = 0;

    while(num != 0){
        scanf("%d", &num);
        
        if(num % 3 != 0 && num % 5 != 0)
            cnt++;
    }
    printf("%d", cnt);

    return 0;
}

 

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

입력과 출력 예

Base = 11

Height = 5

Triangle width = 27.5

Continue? Y

Base = 10

Height = 10

Triangle width = 50.0

Continue? N

 

#include <stdio.h>
int main(){
    int base, height;
    char retry;
    double width;
    while(1){
        printf("Base = ");
        scanf("%d", &base);
        printf("Height = ");
        scanf("%d", &height);
        width = (base * height) / 2.0;
        printf("Triangle width = %.1lf\n", width);
        printf("Continue? ");
        scanf(" %c", &retry);
        if(retry != 'Y' && retry != 'y')
         break;
    }
    return 0;
}