C++ C++';附加费';变量设置不正确
当年龄在18-25岁范围之外时,我似乎无法使附加费变量等于0 当输入包含附加费时,程序运行正常,但当附加费必须等于0时,程序表示未初始化 我的代码如下C++ C++';附加费';变量设置不正确,c++,variables,initialization,C++,Variables,Initialization,当年龄在18-25岁范围之外时,我似乎无法使附加费变量等于0 当输入包含附加费时,程序运行正常,但当附加费必须等于0时,程序表示未初始化 我的代码如下 #include<iostream> using namespace std; int main() { int age, accidents, basic = 500, surcharge, program, total; char safety; cout << "Enter your age: " <&l
#include<iostream>
using namespace std;
int main()
{
int age, accidents, basic = 500, surcharge, program, total;
char safety;
cout << "Enter your age: " << endl;
cin >> age;
cout << "Enter # of accidents: " << endl;
cin >> accidents;
cout << "Did you attend a driver saftey program? y/n: ";
cin >> safety;
if (age < 18 || accidents >= 6)
{
cout << "You are not eligible for insurance";
}
else
if (age >= 18 || age <= 25)
surcharge = 100;
else
surcharge == 0;
if (accidents == 1 && safety == 'n')
program = 50;
else if (accidents == 2 && safety == 'n')
program = 125;
else if (accidents == 3 && safety == 'n')
program = 225;
else if (accidents == 4 && safety == 'n')
program = 375;
else if (accidents == 5 && safety == 'n')
program = 575;
// attended driver safety course
else if (accidents == 1 && safety == 'y')
program = 35;
else if (accidents == 2 && safety == 'y')
program = 100;
else if (accidents == 3 && safety == 'y')
program = 200;
else if (accidents == 4 && safety == 'y')
program = 325;
else if (accidents == 5 && safety == 'y')
program = 500;
else
program = 0;
total = basic + surcharge + program;
cout << "Your total is: " << total << endl;
getchar();
getchar();
return 0;
}
#包括
使用名称空间std;
int main()
{
整数、事故、基本=500、附加费、计划、总计;
煤焦安全;
年龄;
交通事故;
安全;
如果(年龄<18 | |事故>=6)
{
此时cout=18 | |年龄
if (age >= 18 || age <= 25)
surcharge = 100;
else
surcharge == 0; // <--- here
如果您想初始化它,只需初始化它
int age, accidents, basic = 500, surcharge, program, total;
到
我可以看到,你有两个bug彼此靠近。你写道:
if (age >= 18 || age <= 25)
surcharge = 100;
else
surcharge == 0;
您从这个错误消息中特别不了解什么?附加费==0
是一个测试而不是一个分配,您的意思是否则附加费=0;
。使用所有警告和调试信息编译(g++-Wall-g
),学习如何使用调试器(gdb
)我理解这条信息的意思,我只是想知道如何解决这个问题,这样当年龄超出18-25岁时,附加费将相等0@JacolbyHartson“我只是想知道如何修复它…”只需初始化它,就可以在它的声明行中,至少在您在任何时候使用它之前。@JacolbyHartson看到我的答案了。您不正确地检查了18到25岁之间的年龄范围,使它看起来好像您的可变附加费在if语句的位置设置不正确?或者在引用语句的第4行的哪里?@JacolbyHartson代码使用==
。它应该使用=
。你理解这两个运算符之间的区别吗?我更改了它,但它仍然没有初始化,我并不是真的想把它放在这里,我只是在尝试不同的东西。在这种情况下,你能告诉我们错误显示的哪个变量没有初始化吗?==测试发布时,会导致这样的错误,因为您试图针对0测试未初始化的变量。此外,它应该是&&
而不是|
是的,“&&”有效,返回1也有效,谢谢您的帮助
int age, accidents, basic = 500, surcharge = 0, program, total;
if (age >= 18 || age <= 25)
surcharge = 100;
else
surcharge == 0;
if (age >= 18 && age <= 25)
surcharge = 100;
else
surcharge = 0;
if (age < 18 || accidents >= 6)
{
cout << "You are not eligible for insurance" << endl;
return 1; // A value > 0 usually denotes an error occurred
}