3科目の点数を入力し、平均点を返す関数と、その平均に応じて評価(A〜D)を返す関数を作れ。

  • getAverage() … 平均値を計算して返す
  • getRank() … 80点以上→A、60点以上→B、40点以上→C、それ以下→D

入力: 80 70 90 出力: (平均値と評価)


#include <iostream>
#include <vector>
#include <iomanip> // std::setprecision
// 関数のプロトタイプ宣言
float getAverage(float score[], int num); //平均値を計算して返す
char getRank(float score[], int num); //80点以上→A、60点以上→B、40点以上→C、それ以下→D
 
int main() {
	//std::vector<double> scores(3); //(N)ってやればN個の要素を持つ配列が作れる
	float scores[3];
	std::cout << "3科目の点数を入力してください(例: 80 70 90)> ";
	for (int i = 0;i < 3; i++) 
		std::cin >> scores[i];
 
	double avg = getAverage(scores, 3);
	char rank = getRank(scores, 3);
 
	std::cout << std::fixed << std::setprecision(1);//小数点以下1桁まで表示
    std::cout << "平均点: " << avg << " 点" << std::endl << "評価: " << rank << std::endl;
}
 
//関数の定義
float getAverage(float score[3], int num)
{
	double sum = 0;
	for (int i = 0; i < num; ++i) {
		sum += score[i];
	}
	return sum / num;
}
char getRank(float score[3], int num)
{
	float avg = getAverage(score, num);
	if (avg >= 80) {
		return 'A';
	}
	else if (avg >= 60) {
		return 'B';
	}
	else if (avg >= 40) {
		return 'C';
	}
	else {
		return 'D';
	}
}

配列とその要素数を受け取り、最大値と最小値をポインタ経由で返す関数を作れ。

  • ループで配列を走査し、*min, *max に代入
  • mainで表示する

入力: {3, 9, 2, 5} 出力: 最大値=9, 最小値=2


解答がここに出るよ

整数配列と要素数を引数に受け取り、平均値を求めて、その平均より大きい要素だけを出力する関数を作れ。

  • 関数内で平均値を計算
  • 平均より大きい要素をすべて表示

入力: {60, 80, 70, 90} 出力: 平均より大きい値 → 80, 90


解答がここに出るよ

文字列と文字を受け取り、その文字がいくつ含まれているか数える関数を作れ。

  • for文で str[i] != '\\0' まで走査
  • 一致したらカウントを増やす

入力: “banana”, 文字 'a' 出力: 文字 'a' は 3 個含まれています


解答がここに出るよ

以下の関数を組み合わせて、5人の点数から平均・最高・最低を出力するプログラムを作れ。

  • mainで配列を作り、関数を順に呼び出す
  • 結果を整形して表示

入力: {70, 85, 60, 90, 75} 出力: 平均=76, 最高=90, 最低=60


解答がここに出るよ
  • game-engineer/classes/2025/game-development-1/no-04.txt
  • 最終更新: 4カ月前
  • by root