C++ 主服务器不返回0
因此,我有这个练习,我需要要求用户提供2个输入(等级>0如果条件错误,您的C++ 主服务器不返回0,c++,C++,因此,我有这个练习,我需要要求用户提供2个输入(等级>0如果条件错误,您的: if (g = 1) 将g设置为1,并且始终为真。您要做的是: if (g == 1) 正如Scott在评论中所说,您不应该调用main,而应该使用while循环。如果您的条件错误: if (g = 1) 将g设置为1,并且始终为真。您要做的是: if (g == 1) 正如Scott在他的评论中所说,你不应该调用main,而应该使用while循环。问题是要测试相等性,你需要两个=,而不是一个,所以你的两个检查
:
if (g = 1)
将g
设置为1,并且始终为真。您要做的是:
if (g == 1)
正如Scott在评论中所说,您不应该调用main,而应该使用while
循环。如果您的条件错误:
if (g = 1)
将g
设置为1,并且始终为真。您要做的是:
if (g == 1)
正如Scott在他的评论中所说,你不应该调用main,而应该使用while
循环。问题是要测试相等性,你需要两个=
,而不是一个,所以你的两个检查实际上是给g
赋值,而不是与g
比较
if (g == 1) {
main();
}
else if (g == 2) {
return 0;
}
任何一个现代编译器都应该给你一个关于这个赋值的编译器警告。你应该始终注意编译器警告
还有你的逻辑
if ((n1 || n2) > 10)
及
else如果((n1 | | n2)<0)
是不正确的,但我会让你找出什么是错误的(这毕竟是家庭作业)
最后,您可能希望执行do while
循环,而不是反复调用main()
。问题是要测试是否相等,您需要两个=
,而不是一个,因此您的两个检查实际上是将值分配给g
而不是与g
if (g == 1) {
main();
}
else if (g == 2) {
return 0;
}
任何一个现代编译器都应该给你一个关于这个赋值的编译器警告。你应该始终注意编译器警告
还有你的逻辑
if ((n1 || n2) > 10)
及
else如果((n1 | | n2)<0)
是不正确的,但我会让你找出什么是错误的(这毕竟是家庭作业)
最后,您可能希望查看执行do while
循环,而不是反复调用main()
。请查看这些修改
float n1;
float n2;
int g = 1;
while (g != 2)
{
cout << "Please enter two grades: " << endl;
cin >> n1;
cin >> n2;
if ((n1 || n2) > 10) {
cout << "Wrong grade";
}
else if ((n1 || n2) < 0) {
cout << "Wrong grade";
}
else {
cout << "The grade average is " << (n1 + n2) / 2 << endl;
cout << "Do you want to insert more grades ? " << endl;
cin >> g;
}
}
return 0;
float n1;
浮氮气;
int g=1;
而(g!=2)
{
cout-n1;
cin>>n2;
如果((n1 | n2)>10){
请看这些修改
float n1;
float n2;
int g = 1;
while (g != 2)
{
cout << "Please enter two grades: " << endl;
cin >> n1;
cin >> n2;
if ((n1 || n2) > 10) {
cout << "Wrong grade";
}
else if ((n1 || n2) < 0) {
cout << "Wrong grade";
}
else {
cout << "The grade average is " << (n1 + n2) / 2 << endl;
cout << "Do you want to insert more grades ? " << endl;
cin >> g;
}
}
return 0;
float n1;
浮氮气;
int g=1;
而(g!=2)
{
cout-n1;
cin>>n2;
如果((n1 | n2)>10){
CUT使用<代码>而不是调用<代码>主()/代码> .TyPOS。<代码> G=1 和<代码> G = 2 。它们需要是<代码> G==1 < /C>和<代码> g=2 < /Cord>。在C++中未定义为<代码>主< /代码>。您的程序无效。使用循环。调用主()在你的程序中有一个不好的做法。你可以查找递归,什么时候使用它,以及如何摆脱它。使用while
循环,而不是调用main()<代码> > TyPo.<代码> g=1 < /C> >代码> g=2 < /代码>。它们需要是<代码> g=1 和 G==2 。在C++中未定义为<代码>主< /代码>。您的程序无效。使用循环。调用主()在你的程序中有一个不好的做法是啊,查找递归,什么时候使用它,以及如何从中解脱出来。赞成把常数放在第一位。反对的理由是一样的——这比helps@Slava真的吗?请给我举个例子,说明它在哪里造成伤害,因为我想不出有什么危害。在我过去的一份工作中,他们有一个固定点的类(用来计算金钱)。它有运算符double()
if(1.0==money)
会给你调试带来无尽的麻烦。任何现代编译器都很容易发现赋值而不是比较问题。我个人认为“常量优先”习惯用法是不可读的。我更喜欢将g
声明为const
,这确实需要将int g;cin>>g;
放在一个单独的函数/lambda中。但这主要是标准流的一个弱点,而不是const
将常量放在第一位。出于同样的原因,将其放在第二位,这样做的更多伤害helps@Slava真的吗?请给我一个例子,说明它在哪里会造成伤害,因为我想不出任何伤害。在我过去的一份工作中,他们有一个固定点的类(计算金钱)。它有操作符double()
if(1.0==money)
在调试时会给你带来无尽的麻烦。任何现代编译器都很容易发现赋值而不是比较问题。我个人认为“常量优先”习惯用法不可读。我更喜欢将g
声明为const
,这确实需要将int g;cin>>g;
放在一个单独的函数/lambda中。但这主要是标准流的一个弱点,而不是const