我在下面的程序中遇到问题.它应该将1-100之间的数字转换为AA,BA,BB,CB,CC,D,F.但是如果我输入的数字少于84,它就会停止工作并显示"BA".我检查了代码.但我不明白这是什么问题.
#include <iostream>
using namespace std;
int main() {
int secenek,notu;
cout << "Not Dönü?türücü" << endl;
cout<<"Ba?lamak için 1'e bas?n:\n";
cin>>secenek;
if (secenek==1)
{
cout<<"Dönü?türülecek not: ";
cin>>notu;
}
if (notu<0 || notu>100)
{
cout<<"Geçerli bir not girin.\n";
}
else if (notu>=90)
{
cout<<"AA";
}
else if (notu<90 || notu>84)
{
cout<<"BA";
}
else if (notu<85 || notu>79)
{
cout<<"BB";
}
else if (notu<80 || notu>74)
{
cout<<"CB";
}
else if (notu<75 || notu>69)
{
cout<<"CC";
}
else if (notu<70 || notu>59)
{
cout<<"D";
}
else if (notu<60)
{
cout<<"F";
}
}
Run Code Online (Sandbox Code Playgroud)
你犯了一个逻辑错误:
else if (notu<90 || notu>84)
Run Code Online (Sandbox Code Playgroud)
应该
else if (notu<90 && notu>84)
Run Code Online (Sandbox Code Playgroud)
以下所有情况都是如此.
编辑为@ Jarod42建议; 你甚至不需要再检查notu<90......你的代码看起来像这样:
if (notu<0 || notu>100)
{
cout<<"Geçerli bir not girin.\n";
}
else if (notu>=90)
{
cout<<"AA";
}
else if (notu>84)
{
cout<<"BA";
}
else if (notu>79)
{
cout<<"BB";
}
etc...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |