728x90
반응형
백준 1546번은 최댓값을 찾고 최댓값을 기준으로 새로 평균을 구하는 문제입니다!
먼저 과목 수를 입력 받고 getline()으로 공백을 포함하여 값을 받습니다.
max_index로 최댓값의 인덱스를 찾고 그 값을 기준으로 평균을 새로 구합니다!
#include<iostream>
#include<string>
#include<sstream>
using namespace std;
int main()
{
int n, a, max_index = 0, i = 0;
double result=0;//소수까지 표현하기 위해 자료형을 double로 했습니다.
string str;
stringstream stream;
cin >> n;
int *b = new int[n];//포인터를 배열처럼 사용합니다!
cin.ignore();
getline(cin, str);
stream.str(str);
while (stream >> a) {
b[i] = a;
i++;
}//배열에 입력된 값을 넣습니다
for (int j = 1; j < n; j++) {
max_index = (b[max_index] > b[j]) ? max_index : j; //최댓값
}
for (int j = 0; j < n; j++) {
result += (((double)b[j] / (double)b[max_index])) * 100;
}//평균 구하기
cout << result / n;
delete[] b;//배열 해제
}
728x90
반응형
'프로그래밍_백준 > C++' 카테고리의 다른 글
(C++) 백준 1085 직사각형에서 탈출 [min()] 활용 (0) | 2023.02.26 |
---|---|
(C++) 백준 1085번 직사각형에서 탈출 (0) | 2023.02.26 |
(C++) 백준 1157번 단어공부 (0) | 2023.02.22 |
(C++) 백준 8958번 OX퀴즈 (0) | 2023.02.22 |
(C++) 백준 3052번 나머지 문제 (0) | 2023.02.22 |