我想做一个“如果”语句,如果变量小于80 t=0,但如果变量大于t=x-80 我刚开始学C++。我想知道如何根据另一个变量来改变一个变量。它显示了一个奇怪的答案,当我尝试它idk从哪里得到它。无论如何,我会把我的代码放在这里,希望有人理解我在做什么 #include <iostream> long int mult (float hours,float payrate,float tax,float overtimerate,float overtimehours,float overtimeday,float insurance); int main() { float insurance; float hours; float payrate; float tax; float overtimerate; float overtimehours; float overtimeday; insurance=.81; overtimehours=0; overtimerate=1.5; tax=4.93372123545367; std::cout<<"Paycheck calculator\n"; std::cout<<"Enter your hours\n"; std::cin>>hours; std::cin.ignore(); std::cout<<"Did you work over 8 hours in a day?\n If so enter how much? If none enter 0\n"; std::cin>>overtimeday; if (hours>80) { overtimehours=((hours - 80)+overtimeday); } std::cout<<overtimehours+overtimeday<<"\n"; std::cout<<"Enter your pay rate\n"; std::cin>>payrate; std::cin.ignore(); std::cout<<"Your paycheck should be approximately: "<<((overtimeday+overtimehours)*(overtimerate*payrate ))+(((hours-overtimehours)*payrate)-((((hours-(overtimeday+overtimehours))*payrate)/tax) -insurance))<<"\n"; }

我想做一个“如果”语句,如果变量小于80 t=0,但如果变量大于t=x-80 我刚开始学C++。我想知道如何根据另一个变量来改变一个变量。它显示了一个奇怪的答案,当我尝试它idk从哪里得到它。无论如何,我会把我的代码放在这里,希望有人理解我在做什么 #include <iostream> long int mult (float hours,float payrate,float tax,float overtimerate,float overtimehours,float overtimeday,float insurance); int main() { float insurance; float hours; float payrate; float tax; float overtimerate; float overtimehours; float overtimeday; insurance=.81; overtimehours=0; overtimerate=1.5; tax=4.93372123545367; std::cout<<"Paycheck calculator\n"; std::cout<<"Enter your hours\n"; std::cin>>hours; std::cin.ignore(); std::cout<<"Did you work over 8 hours in a day?\n If so enter how much? If none enter 0\n"; std::cin>>overtimeday; if (hours>80) { overtimehours=((hours - 80)+overtimeday); } std::cout<<overtimehours+overtimeday<<"\n"; std::cout<<"Enter your pay rate\n"; std::cin>>payrate; std::cin.ignore(); std::cout<<"Your paycheck should be approximately: "<<((overtimeday+overtimehours)*(overtimerate*payrate ))+(((hours-overtimehours)*payrate)-((((hours-(overtimeday+overtimehours))*payrate)/tax) -insurance))<<"\n"; },c++,C++,在使用t之前,需要为它指定一个值。说浮动t;实际上不会给它一个有意义的值。同上,小时和费率。在执行x=t*w+hours-t*rate;之前分配它们 在使用t之前,需要为t赋值。说浮动t;实际上不会给它一个有意义的值。同上,小时和费率。在执行x=t*w+hours-t*rate;之前分配它们 您还没有初始化小时数初始化所有局部变量始终是一种良好的做法 还要注意的是,“小时”是float类型,并且没有精确表示,因此与80进行比较可能会产生与预期不同的结果。您还没有初始化小时初始化所有局部变量始终是

在使用t之前,需要为它指定一个值。说浮动t;实际上不会给它一个有意义的值。同上,小时和费率。在执行x=t*w+hours-t*rate;之前分配它们

在使用t之前,需要为t赋值。说浮动t;实际上不会给它一个有意义的值。同上,小时和费率。在执行x=t*w+hours-t*rate;之前分配它们

您还没有初始化小时数初始化所有局部变量始终是一种良好的做法


还要注意的是,“小时”是float类型,并且没有精确表示,因此与80进行比较可能会产生与预期不同的结果。

您还没有初始化小时初始化所有局部变量始终是一种良好的做法

还请注意,“小时”是float类型,并且这些时间没有精确表示,因此与80进行比较可能会产生与预期不同的结果。

在表达式中:

x=t*w+H-t*费率

您正在使用t,即使t从未设置过。 此时,t将是未定义的,并且可以有任何值

小时数和费率也是如此

编译器应该对未初始化的变量发出警告

编辑查看您的代码更多,似乎您正在尝试建立小时、费率和t的规则,然后填写这些值,期望这些规则将被保留

C++不是这样工作的。它是一种顺序语言,意味着每个指令在读取时从上到下执行一次

您需要将程序流更改为:

收集变量 做计算和逻辑 输出答案。 您似乎颠倒了步骤1和步骤2,试图在收集变量之前设置计算。

在表达式中:

x=t*w+H-t*费率

您正在使用t,即使t从未设置过。 此时,t将是未定义的,并且可以有任何值

小时数和费率也是如此

编译器应该对未初始化的变量发出警告

编辑查看您的代码更多,似乎您正在尝试建立小时、费率和t的规则,然后填写这些值,期望这些规则将被保留

C++不是这样工作的。它是一种顺序语言,意味着每个指令在读取时从上到下执行一次

您需要将程序流更改为:

收集变量 做计算和逻辑 输出答案。
您似乎颠倒了步骤1和步骤2,试图在收集变量之前设置计算。

我看到您声明了一个函数:

int mult (float x,float t,float w,float hours, float rate,float z); 
你从来没有做过任何事。我认为您的代码主要属于mult,您的main应该为这些变量赋值,或者提示用户输入这些变量并从cin读取它们。稍后对某些变量执行此操作,但永远不要使用在中读取的内容


我同意@quantumSoup的说法,顺便说一句,你的变量名称不好。此外,您的代码的顺序也很奇怪。这使得很难猜测您想要什么。

我看到您声明了一个函数:

int mult (float x,float t,float w,float hours, float rate,float z); 
你从来没有做过任何事。我认为您的代码主要属于mult,您的main应该为这些变量赋值,或者提示用户输入这些变量并从cin读取它们。稍后对某些变量执行此操作,但永远不要使用在中读取的内容


我同意@quantumSoup的说法,顺便说一句,你的变量名称不好。此外,您的代码的顺序也很奇怪。这使得你很难猜出你想要什么。

其他答案指出了你的代码中非常严重的缺陷,因此你应该认真对待它们,但有一件事,这个主题表明你正在努力解决,但没有解释。让我试试

我认为你正在努力寻找一种计算加班时间的方法。您从用户处获取指示工作小时数的输入。如果该数字小于或等于80,则不存在加班。否则加班时间等于80小时,对吗

<>你可以在C++中表达这样的逻辑:

float hours;
float overtime;

//....

cout<<"enter the amount of hours you have worked\n";
cin>>hours;

if(hours > 80)
{
    overtime = hours - 80;
}
else
{
    overtime = 0;
}

其他答案指出了代码中非常严重的缺陷,因此您应该认真对待它们,但有一件事,主题表明您正在努力解决,但没有解释。让我试试

我认为你正在努力寻找一种计算加班时间的方法。您从用户处获取指示工作小时数的输入。如果该数字小于或等于80,则不存在加班。否则加班时间等于80小时,对吗

<>你可以在C++中表达这样的逻辑:

float hours;
float overtime;

//....

cout<<"enter the amount of hours you have worked\n";
cin>>hours;

if(hours > 80)
{
    overtime = hours - 80;
}
else
{
    overtime = 0;
}

请使用更具描述性的变量
请使用比x、t、w和zAlso更具描述性的变量名,您输入的是什么?奇怪的答案是什么?我输入的是我的80小时,同时输入我的工资率17,并获得我的工资支票=净工资的结果请使用比x、t、w和zAlso更具描述性的变量名,您输入的是什么,奇怪的答案是什么?我输入了我的80小时,也输入了我的工资率17,得到了我的工资支票=净工资的结果谢谢你解释这一点。我意识到我的编码需要工作,我正在努力清理这一点,使其可读性,但感谢你们所有人的投入,这有助于我更好地理解逻辑。感谢你们解释这一点。我意识到我的编码需要工作,我正在努力清理这一点,使其可读性,但感谢大家的投入,这有助于我更好地理解逻辑。