🧮 練習問題

第1問:平均点と評価を返す関数

3科目の点数を入力し、平均点を返す関数と、その平均に応じて評価(A〜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';
	}
}

第2問:配列の最大値と最小値を求める関数

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

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


解答

解答がここに出るよ

第3問:配列の平均値より大きい値を表示

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

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


解答

解答がここに出るよ

第4問:文字列中の特定文字を数える関数

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

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


解答

解答がここに出るよ

第5問:関数を組み合わせて統計出力

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

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


解答

解答がここに出るよ