我还是新手,我真的不懂很多东西 唯一令人遗憾的是 x = d / t ,我不知道把它放在哪里...... 我已经尝试了各种方法,但仍无法弄清楚放在哪里。
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int d, t, s, z;
cout<<"Enter the distance of your destination:"<<endl;
cin >>d;
cout<<"Enter the time you want to get there:"<<endl;
cin >>t;
for (z=1; z<=5; z++)
{
cout<<"Enter your speed:"<<endl;
cin>>s;
if (int x=d/t && x>=s)
{
cout<<"Maintain your speed it is the appopriate speed: "<<s<<"mph"<<endl;
break;
}
else
{
cout<<"Go faster at this rate you won't get to your destination on time"<<endl;
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
The Output always shows the if statement even though it should already show the else statement..
I really need help on this..
答案 0 :(得分:2)
将它放在if
int x = d / t;
if (x && x >= s)
或者你想要这个
int x = d / t;
if (x >= s)
答案 1 :(得分:1)
改为写:
int x=d/t;
if(x && x>=s)
{
// ...
准确地得到你所写的结果。
答案 2 :(得分:1)
你不这样做。
如果您想要完成您所写的内容,请使用此选项:
int x = d/t;
if (x && x >= s)
{
...
}
但你可能真的只是想要:
if(x >= s)
答案 3 :(得分:1)
尝试
int x = d/t;
if (x >= s) {
....
根据C ++的书
答案 4 :(得分:1)
这是代码:
int main(int argc, char *argv[])
{
int d, t, s, z;
cout<<"Enter the distance of your destination:"<<endl;
cin >>d;
cout<<"Enter the time you want to get there:"<<endl;
cin >>t;
for (z=1; z<=5; z++)
{
cout<<"Enter your speed:"<<endl;
cin>>s;
int x=d/t;
if (x>=s)
{
cout<<"Maintain your speed it is the appopriate speed: "<<s<<"mph"<<endl;
break;
}
else
{
cout<<"Go faster at this rate you won't get to your destination on time"<<endl;
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
答案 5 :(得分:1)
为什么要声明x?
if(d/t>=s)
答案 6 :(得分:1)
我猜您的问题是输入数据(距离,时间)应该是double
,而不是int
。在C ++中,整数除法会截断,即2 / 3 == 0
。让我失去了几次......整数是为了数,而不是用于测量。
并且不要担心多次写一些表达式,当前的编译器足够聪明,可以注意并计算一次。无论如何,尽可能写出最简单,最清晰的代码。只有当它显示得太慢(不太可能)时,才能通过代码来收紧它。你编写代码的时间,理解错误行为时真正写的是什么,修复它比计算机时间的几秒钟更有价值。
永远不要忘记Brian Kernighan的“调试是首先编写代码的两倍。因此,如果您尽可能巧妙地编写代码,那么根据定义,您不够聪明,无法对其进行调试。”还有唐纳德克努特的"Premature optimization is the root of all evil"。