2017-05-21 6 views
-3

私はちょうどC++でのプログラミングを開始しましたが、入力したスコアに基づいてグレードを返すプログラムを作成しようとしました。 しかし、Aグレードは正しいですが、私は他のグレードが間違った結果を返すことに気付きました。私は下のコードを貼り付けます。誰かがそれを見ることができたら、私は非常に感謝します!スコア値を入力すると、不正な結果が返されます

#include <stdafx.h>     
#include <iostream> 
using namespace std; 

void printgrade(double score); 

int main() { 

double score; 

std::cout << "Hello, Please enter your score: " << std::endl; 
std::cin >> score; 

printgrade(score); 

system("pause"); 

return 0; 


} 

void printgrade (double score) { 
if (score >= 90.0) 
    std::cout << " A " << std::endl; 
else if (score <= 80.0) 
    std::cout << " B " << std::endl; 
else if (score >= 70.0) 
    std::cout << " C " << std::endl; 
else if (score >= 60.0) 
    std::cout << " D " << std::endl; 
else if (score >= 50.0) 
    std::cout << " E " << std::endl; 
else if (score >= 40.0) 
    std::cout << " F " << std::endl; 
} 
+0

'else if(score <= 80.0)' < - この行 – LogicStuff

+0

条件の1つにエラーがあります: 'score <= 80.0'は' score> = 80.0'を読みます。 – nucleon

+0

ようこそスタックオーバーフロー。 [The Tour](http://stackoverflow.com/tour)を読み、[ヘルプセンター](http://stackoverflow.com/help/asking)の資料を参考にしてください。ここに聞いてください。 –

答えて

1
if (score >= 90.0) 
    std::cout << " A " << std::endl; 
else if (score <= 80.0) 
    std::cout << " B " << std::endl; 
else if (score >= 70.0) 
    std::cout << " C " << std::endl; 

それはscore <= 80条件>=に変更すべき点はあることです。

それが今立っているとして、あなたは(優先順に)>= 90ためAを得るでしょう、何でも<= 80ためB、そして何>= 70ためC。それはすべての可能性をカバーしているので、他の等級はありません。

+0

ありがとう!そのことを知らなかった –

関連する問題