[boj] 4344 평균은 넘겠지 - 형 변환

serotonins·2022년 9월 17일

Coding Q

목록 보기
3/17

정수 위주로만 풀다보니 실수에서 약간 당황하게 됐던 문제

출력할 때 printf("%.3f%%\n", (float)high * 100 / N); 으로 코딩해도 맞출 수 있다

주석에 단 것처럼 형 변환 안 하려면 100.0처럼 실수 형태로 연산해줘야 한다는 것을 유의

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <malloc.h>

int main() {
    int C = 0, N = 0;
    scanf("%d", &C);

    for (int j = 0; j < C; j++) {
        scanf("%d", &N);

        int *student = (int *)malloc(sizeof(int) * N);
        int sum = 0, high = 0;

        for (int i = 0; i < N; i++) {
            scanf("%d", &student[i]);
            sum += student[i];
        }

        for (int j = 0; j < N; j++) {
            if (student[j] > (sum / N)) high++;
        }

        printf("%.3f%%\n", high * 100.0 / N);

        free(student); // 동적 할당 받은 메모리 해제
    }

    for (int i = 0; i < 3; i++) getchar();

    return 0;
}


0개의 댓글