符号化試験|(c++)標準1546回:平均値
に質問
勢俊は期末試験に失敗した.勢俊は点数を偽造して家に持ち帰ることにした.まず勢俊は自分の点数の中で最高値を選んだ.この値をMと言います.そしてすべての点数を点数/M*100に変更しました.
例えば、ポテンシャル俊の最高点数が70で、数学点数が50であれば、数学点数は50/70*100で71.43点である.
上記の方法で勢俊の成績を再計算する場合は、新しい平均値を求めるプログラムを作成してください.
質問の表示
🎹入力
1行目は試験科目の個数Nを与える.この値は1000以下です.2列目は勢俊の今の成績をあげた.この値は100以下の整数ではなく、少なくとも1つの値が0より大きい.
📢しゅつりょく
最初の行に新しい平均値を出力します.実際の正解と出力値の絶対誤差または相対誤差が10−2以下であることが正解である.
ほどく
#include <iostream>
using namespace std;
int main() {
// 시험 본 과목의 개수 N을 입력받는다.
int n;
cin >> n;
// N의 값이 1000보다 작거나 같다. 최대 경우의 배열 선언
int arr[1000] = { 0 };
int max = 0;
double result = 0;
// 둘째 줄에 현재 성적들을 입력받는다.
for (int i = 0; i < n; i++)
{
cin >> arr[i];
// 성적 중 제일 큰 점수를 구한다.
if (max < arr[i])
max = arr[i];
}
// 모든 점수를 "점수/M*100"으로 고친다.
for (int i = 0; i < n; i++)
{
result += (double)arr[i] / (double)max * 100.l;
}
// 과목의 개수 N만큼 나누면 평균 값이 완성된다.
cout << result / n;
return 0;
}
最適化とメモリ管理を考慮し、動的な割り当てと一般化の方法を考慮すると、これは難しい考えだと思いますので、今回からもっと簡単な問題があるかどうか考え始めました.また,正解を当てて他の人のコードと比較することもよい学習となった.参考資料とサイト(ありがとうございます)
Reference
この問題について(符号化試験|(c++)標準1546回:平均値), 我々は、より多くの情報をここで見つけました https://velog.io/@goblin820/코딩테스트-c-백준-1546번-평균テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol