白駿2592回C++解答(学習C+++(101~150)


質問する
いくつかの数がある場合、これらの数を表す値が最も一般的なのは平均数です.平均は与えられたすべての数の和を数で割った数である.例えば、10、40、30、60、30、20、60、30、40、50の平均値は(10+40+30+30+60+30+40+50)/10=370/10=37である.
平均値以外のもう1つの代表値が最も空の値であるという説があります.最貧値は、与えられた数の中で最も多く現れる数です.例えば、10、40、30、60、30、60、30、40、50が与えられた場合、30は3回、40、60はそれぞれ2回、10、20、50は1回であるため、最適値は30である.
10個の自然数を与える場合は、平均値と最適値を求めるプログラムを作成します.
入力
1行目から10行目まで、各行に自然数があります.与えられた自然数は1000未満の10の倍数である.
しゅつりょく
1行目は平均値、2行目は最大値を出力します.最大NULL値が2つより大きい場合は、いずれかのみ出力されます.平均値も最貧値も自然数です.
答えを出す.
#include <iostream>
using namespace std;
int main() {
  int arr[11];
  int max[11]={0,};
  int aver=0, max_index=0;;
  // ------------여기부터 평균값 계산.--------------------------------
  for(int a=0;a<10;a++){
    cin>>arr[a];
  }
  for(int b=0;b<10;b++){
    aver+=arr[b];
  }
  aver=aver/10;
//---------------여기 부터 최빈값 계산.-------------------------------
  for(int c=0;c<10;c++){
    for(int d=0;d<10;d++){
      if(arr[c]==arr[d]){
        max[c]+=1;
      }
    }
  }
  for(int d=0;d<9;d++){
      if(max[max_index]<max[d+1]){
        max_index=d+1;
      }
    }
  cout<<aver<<endl;
  cout<<arr[max_index]<<endl;
}
私のやり方は平均的です...これは平均数にすぎない.
次に、選択ソートを最空の値に代入して解きます.
すべての値を1つずつ比較し、配列に保存します.
その配列値を再比較する作業をしましたが、思いついた方法がこれだったので、そうしましたが、効率的ではなかったようです.もっと良い方法があれば教えてください.
1行のコメント、
他の人が解いたものを見て、私が解いたものは汚いです.
この方法は正しいと思いますが、答えが出てきました.
和音をきれいに書く習慣をつけましょう.