私はオンラインで C++ に挑戦していますが、この部分で立ち往生しています。
基本的には以下の課題です。
「Derp は大学の学生です。彼の好きな授業は数学です。年末が近づいており、Derp は成績 "K" を取得するために最後の試験で何点取る必要があるかを自問しています。
教師は今年 5 つのテストを行いました。テストで獲得できる最大ポイントは 100 です。
If <=60 = Grade : 1
If >=60 && <= 69 = Grade : 2
If >=70 && <= 79 = Grade : 3
If >=80 && <= 89 = Grade : 4
If >=90 && <= 100 = Grade: 5
89.8 点を取得した場合、グレード 5 ではなくグレード 4 になります。彼の最初の 4 つのテスト (T1、T2、T3、T4) の結果はわかっています。最後のテストで、Derp が希望の成績「K」を取得するために必要な最小ポイント数を見つけなければなりません。
入力: 入力では、最初に、Derp "K" (2<= K <= 5) によって希望するグレードを入力します。2 行目では、最初の 4 つのテストの結果を入力します。(0 <= T1、T2、T3、T4 <=100)
出力: Derp が希望する数学の成績 "K" を取得するために、最後のテストで取得する必要のある最小ポイント数を出力する必要があります。最後のテストで最高点を取ったとしても、Derp がグレード「K」を取得する可能性がない場合は、「不可能」と出力する必要があります。」
例:
入力: 5 100 100 100 100
出力: 50
入力: 5 10 20 30 40
出力: 不可能
入力: 2 100 100 100 100
出力: 0
入力: 4 83 74 79 73
出力: 91
これが私がこれまでに得たものです。
#include <iostream>
using namespace std;
int main()
{
int grade;
cin >> grade;
int t1,t2,t3,t4;
cin >> t1 >> t2 >> t3 >> t4;
if((t1+t2+t3+t4)/4<=59)
{
cout << "Grade: 1\n";
}
else if((t1+t2+t3+t4)/4>=60 && (t1+t2+t3+t4)/4<=69)
{
cout << "Grade: 2\n";
}
else if((t1+t2+t3+t4)/4>=70 && (t1+t2+t3+t4)/4<=79)
{
cout << "Grade: 3\n";
}
else if((t1+t2+t3+t4)/4>=80 && (t1+t2+t3+t4)/4<=89)
{
cout << "Grade: 4\n";
}
else if((t1+t2+t3+t4)/4>=90 && (t1+t2+t3+t4)/4<=100)
{
cout << "Grade: 5\n";
}
int t5;
return 0;
}
私もいくつかの計算を行い、これに来ました。
(100+100+100+100+x)/5>=90
(400+x)/5>=90
80+x/5 >= 90
x/5 >= 10
× >= 50
これは基本的に、数学的に言えば、上記の最初の入力/出力の例です。ただし、これをどのようにコーディングするかはわかりません。どんなアイデアでも大歓迎です!
ありがとうございました。