現在、Prog 2クラスの割り当てに取り組んでいます。これは、配列に格付けを格納し、格付けの平均をとるクラスムービーの作成を含みます。私はプログラムの大半をやっているが、私の平均が正しく印刷されていない理由を理解することができず、同じ値を得続けている。1次元配列の数値の平均を取る
さらに、「平均閲覧者評価」の後に数値を表示するのではなく、言葉を言いたいと思います。例えば、平均1は "恐ろしい"、2は "悪い"、3は "良い"、4は "良い"、5は "良い"となります。
私はC++をかなり新しくしているので、どんな指針も素晴らしいものになるでしょう。ありがとうございました!
私のクラスの宣言:
class Movie {
private:
int rate[5];
int ratings;
string movie;
string userRate[5] = {"Terrible","Bad","Okay","Good","Great"};
string mpaa;
public:
Movie();
Movie(string title, string mpaaRating);
void setMPAA(string mpaaRating);
double getAverage();
void addRating(int rating);
friend ostream& operator << (ostream &out, Movie &M);
};
getAverage()関数:
double Movie::getAverage()
{
int total = 0;
for (int i = 0; i < 5; i++)
{
total += rate[i] * (i+1);
ratings++;
}
if (ratings > 0)
return total/ratings;
else
return 0;
}
メイン
:
int main() {
Movie A("Inception","PG-13");
Movie B("Fear and Loathing in Las Vegas","PG-13");
A.addRating(1);
A.addRating(3);
A.addRating(5);
A.addRating(5);
A.addRating(5);
B.addRating(3);
B.addRating(2);
B.addRating(1);
B.addRating(4);
B.addRating(5);
cout << A << endl;
cout << B << endl;
}
そしてOUTPUT
Movie: Inception
MPAA Rating: PG-13
Avg. Viewer Rating: 3
Movie: Fear and Loathing in Las Vegas
MPAA Rating: PG-13
Avg. Viewer Rating: 3
なぜ '*(I + 1);'?また、 '<<"の実装はどこですか?デバッグをしましたか?彼らが間違っているかもしれない多くのことがあります、そして、あなたがそれを狭めるのを助けるのに十分なコードを含んでいません。 – Carcigenicate
コードの一部を投稿しました。あなたは[mcve]を投稿できる方が良いでしょう。 –