gpt4 book ai didi

C++ 数组和 if 循环。如果循环忽略值并在输入值时给出错误的行

转载 作者:行者123 更新时间:2023-11-28 01:40:01 25 4
gpt4 key购买 nike

我的代码:

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
double Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8, Num9, Num10, Num11, Num12;
int StudentID;


Num1= 97 * 0.3;
Num2= 79 * 0.3;
Num3= 86 * 0.4;
Num4= 91 * 0.3;
Num5= 78 * 0.3;
Num6= 79 * 0.4;
Num7= 73 * 0.3;
Num8= 77 * 0.3;
Num9= 82 * 0.4;
Num10= Num1 + Num2 + Num3;
Num11= Num4 + Num5 + Num6;
Num12= Num7 + Num8 + Num9;

cout << "Please enter a Student ID "<< endl;
cin >> StudentID;
{
if (StudentID= 2046)
cout << "The grade for student " << StudentID << " is: " << Num10 << endl;


else if (StudentID= 7634)
cout << "The grade for student " << StudentID << " is: " << Num11 << endl;


else if (StudentID= 8120)
cout << "The grade for student " << StudentID << " is: " << Num12 << endl;

else if (StudentID != 2046, 7634, 8120)
cout << "I'm sorry that is not a valid StudentID " << endl;
}



return 0;
}

需要输出(输入2046时):学号:2046学生成绩为87.2

收到的输出:学号:2046学生成绩为 87.2抱歉,这不是有效的 ID

这可能是什么问题?很抱歉,如果很明显我是一个新手编码员。

最佳答案

这个条件:

if (StudentID = 2046)

始终计算为 true,因为 StudentID = 2046 的表达式使用 assignment operator and(整个表达式)总是隐式转换为 true。它不检查 StudentID 是否等于 2046。为此,您需要使用 equal to == 运算符:

if (StudentID == 2046)

这个条件:

if (StudentID != 2046, 7634, 8120)

是一个逗号分隔的表达式,其计算结果为最右边的值,即 8120,可隐式转换为 true。它不会检查 StudentID 是否不等于所有列出的数字。为此,您需要将值存储在 std::vectorstd::array 或类似内容中,并检查它是否与它们中的任何一个匹配。

关于C++ 数组和 if 循环。如果循环忽略值并在输入值时给出错误的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47596027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com