Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++';附加费';变量设置不正确_C++_Variables_Initialization - Fatal编程技术网

C++ C++';附加费';变量设置不正确

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

当年龄在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: " << 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
}