• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:5つの要素を持つ配列から最高点を出力する)

配列から最高点を出力する方法とは?

このQ&Aのポイント
  • 学生のテストの点数を配列として受け取り、最高点を出力する方法を教えてください。
  • 関数を使ってif文で最高点を判定する方法についてわかりません。どうすればいいですか?
  • みたいな感じの例題を作るまとめの練習ですが、ちょっと頭がこんがらがってしまいました。お手すきのときにご教示いただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.3

今回のコードの設計ポリシーは、 mainからは「何々を実行しろ」という指令を出すことに徹しています。 データの入力用の関数input() と 最高点を求める関数max() を呼び出すと、呼び出された側は 「合点だ」といって、データ入力や最高点の計算を行ないます。 今くらいのコードであれば、main()に全部書いてもいいっちゃいいですが、 それは当方のポリシー(mainに実際の処理を書くことはほとんどしない)に 反します。

aiueo6391
質問者

お礼

回答ありがとうございます。 色々応用が利かない頭なので復習して勉強していきたいと思います。 ありがとうございました。

その他の回答 (2)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

>#define N (5)という部分 コード中にNという単語が出てきたら、それを(5)に置き換えてから コンパイルしてね、という指示です。 5がそこら中に出てきたとき、例えば10人分の最高点に変えようと思ったら すべての5を漏れなく10に修正する必要があり、めんどうですよね。 #defineを使えば、(5)を(10)にする1ヶ所だけですみます。 >それとポインタは使ってもよいのでしょうか? 関数の実引数において、 int array[] と int *array は等価です。

aiueo6391
質問者

お礼

回答ありがとうございます。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

こんな感じでしょうか。 #include <iostream> using namespace std; #define N (5) void input(int *score) { cout << "テストの点数を入力してください。\n"; for (int i = 0; i < N; i++) { cin >> score[i]; } } int max(int *score) { int max = score[0]; // 配列の先頭を、仮の最高点とする for (int i = 1; i < N; i++) { if (score[i] > max) // 今見ている点数が最高点より大きかったら max = score[i]; // その点数を最高点にする } return max; } int main(void) { int score[N]; input(score); cout << "最高点は、" << max(score) << "点です。\n"; return 0; }

aiueo6391
質問者

お礼

回答ありがとうございます。 疑問点が出たのでそこだけ聞きたいのですが、 #define N (5)という部分と、inputのinputって部分は何ですか? それとポインタは使ってもよいのでしょうか? ご教示お願いします。

aiueo6391
質問者

補足

あ、、すみませんinputはinputですね・・・。 #define N (5)が解りません。

関連するQ&A