ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1546 평균
    Baekjoon 2018. 11. 15. 23:29


    Backjoon 1546번 평균





    전체 코드


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #include<stdio.h>
    #include<malloc.h>
    int main(){
        short N,i,j,k; // N은 받을 성적의 갯수(배열에 입력되는 자료의 갯수) i,j,k는 증가값
        float result; // 성적을 처리한 후 평균을 구하기위해 합의 값을 저장할 변수
        short testscore=0// 각 성적을 배열에 넣을 때 임시로 값을 저장하는 변수
        scanf("%hd",&N); 
        short *test = (short *)malloc(sizeof(short)*N);
        for(i=0;i<N;i++){
            scanf("%hd",&testscore);
            *(test+i)=testscore;
        }
        short max=*(test+0); //최댓값을 구한 후 저장 할 변수
        for(j=0;j<N;j++){
            if(max<=*(test+j)){
                max=*(test+j);
            }
        }
        for(k=0;k<N;k++){
            result+=(float)test[k]/max*100;
        }
        printf("%f",result/N);
        free(test);
        return 0;
    }
    cs




    1
    2
    3
    4
    5
    6
        scanf("%hd",&N); 
        short *test = (short *)malloc(sizeof(short)*N);
        for(i=0;i<N;i++){
            scanf("%hd",&testscore);
            *(test+i)=testscore;

    cs



    short형 데이터를 1개 입력받은 후에 변수 N에 저장하고, 입력받은 성적데이터들을저장해줄 test 배열을 동적할당해줍니다.

    (포인터를 배열처럼 사용)


    그 후 입력받은 short형 데이터 N개를 반복문을 통해 배열에 각 각 저장해줍니다.





    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        short max=*(test+0); //최댓값을 구한 후 저장 할 변수
        for(j=0;j<N;j++){
            if(max<=*(test+j)){
                max=*(test+j);
            }
        }
        for(k=0;k<N;k++){
            result+=(float)test[k]/max*100;
        }
        printf("%f",result/N);
        free(test);
        return 0;
    cs


    최댓값을 구한 후 저장해줄 변수 max를 short형으로 선언해준 후, 반복문을 통해 최댓값을 찾아냅니다.


    test배열의 첫번째값을 max변수에 넣어준 후, 배열의 각 항목을 첫번째값과 비교해 더 큰 데이터를 max에 다시 저장합니다.


    문제에 주어진대로 각 성적값을 처리해주고나서 result변수에 각 성적값을 더해 처리된 성적들의 합을 구합니다.


    마지막으로 printf으로 float형으로 출력해줍니다.(출력하는과정에서 평균을 구함)


    'Baekjoon' 카테고리의 다른 글

    7576 - 토마토  (0) 2022.04.19
    2225 - 합분해  (0) 2022.04.19
    1699 - 제곱수의 합  (0) 2022.04.19
    11727 - 2 x n 타일링2  (0) 2022.04.19
    10871 X보다 작은 수  (0) 2018.11.17
Designed by Tistory.