-
Backjoon 1546번 평균
전체 코드
12345678910111213141516171819202122232425#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 123456scanf("%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개를 반복문을 통해 배열에 각 각 저장해줍니다.
123456789101112short 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