알고리즘 문제풀이
백준 1546번 평균 C++/수학/브론즈1
yoogani
2023. 10. 26. 15:26
https://www.acmicpc.net/problem/1546
1546번: 평균
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보
www.acmicpc.net
가장큰값을 찾아서 그 값에 맞게 값을 보정한다.
#include<iostream>
using namespace std;
int main()
{
float n,a, maxi = -2147000000;
float score[1001], sum=0.0;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a;
score[i] = a;
if (a > maxi) {
maxi = a;
}
}
for (int i = 0; i < n; i++) {
score[i] = (score[i] / maxi) * 100;
sum += float(score[i]);
}
cout.precision(6);
cout << sum / float(n);
return 0;
}
또는 계산을 한번에 다 하고
한번에 값을 보정하는 방법도 있다.
#include<iostream>
using namespace std;
int main()
{
float n,a, maxi = -2147000000;
int idx = 0;
float score[1001], sum=0.0;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a;
score[i] = a;
if (a > maxi) maxi = a;
sum += score[i];
}
sum = (sum / maxi * 100)/n;
cout.precision(6);
cout << sum;
return 0;
}