c++ - 根据输入的等级输出正确的字母等级
问题描述
每次我在程序中输入三个等级时,它都会输出正确的百分比数字,但不是正确的字母等级。例如,如果我将我的三个等级都输入为 100,它会输出:你的平均分是 100,你的字母等级是 F。我该如何解决这个问题才能让它根据每个百分比说出正确的字母等级?
我的代码:
/*Write a program to read 3 grades. Grades are between 0-100. Calculate the average, then print the
following message. */
#include<iostream>
using namespace std;
void main() {
int grade1{};
int grade2{};
int grade3{};
int average{};
int sum{};
cout << "Enter 3 grades (as a number between 0-100): " << endl;
cin >> grade1 >> grade2 >> grade3;
sum = (grade1 + grade2 + grade3);
average = (sum / 3);
if (grade1+grade2+grade3/3 <= 100)
{
cout << "Your average is: " << average << "," << " your letter grade is A." << endl;
}
else if (grade1+grade2+grade3/3 <= 89)
{
cout << "Your average is: " << average << "," << " your letter grade is B." << endl;
}
else if (grade1+grade2+grade3/3 <= 79)
{
cout << "Your average is: " << average << "," << " your letter grade is C." << endl;
}
else if (grade1+grade2+grade3/3 <= 69)
{
cout << "Your average is: " << average << "," << " your letter grade is D." << endl;
}
else
{
cout << "Your average is: " << average << "," << " your letter grade is F." << endl;
}
}
解决方案
grade1+grade2+grade3/3
是错的。在 C++ 中除法是在加法之前计算的,所以只grade3
除以 3grade1
而不grade2
除。
你已经计算过了average
,所以你应该使用它而不是错误的公式。
情况也看起来不对。看来您应该使用>=
or >
(根据规范)而不是<=
.
推荐阅读
- android - android:buttonStyle 停止使用材料设计 1.2.0
- regex - 查找 npm 包文件夹
- jmeter - 使用 JSON 路径提取器过滤后如何从列表中返回单个值?
- microsoft-information-protection - MIP SDK 支持哪些文件类型?
- android - 为什么 MDToolvar 图标未在 Android 上显示?(Kivy)
- arrays - Powershell - 声称对象属性不为空或 null,但 Write-Host 不打印任何内容
- java - NoClassDefFoundError: net/javacrumbs/shedlock/core/LockProvider
- asp.net-core - System.Data.SqlTypes.SqlNullValueException 在我从 netcore 3.1 迁移到 net5.0 之后
- angular - 升级 Angular 9 后,共享模块的导入在共享组件中不起作用
- javascript - 在页面加载时保持特定菜单打开