Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/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++ 算术表达式是0而不是1 #包括 使用名称空间std; int main(){ INTA、b、c; cin>>a>>b>>c; cout_C++ - Fatal编程技术网

C++ 算术表达式是0而不是1 #包括 使用名称空间std; int main(){ INTA、b、c; cin>>a>>b>>c; cout

C++ 算术表达式是0而不是1 #包括 使用名称空间std; int main(){ INTA、b、c; cin>>a>>b>>c; cout,c++,C++,这是整数除法问题:如果a==5和b==10,那么a/b==0 参见标准,乘法运算符[expr.mul] 为了 整数操作数/运算符生成代数商,并丢弃任何小数部分 不,没有错 因为所有变量都是整数 在整数世界中,5/10是0,乘以2仍然是0 9/10也是0,但11/10是1 如果希望从中获得有用的信息,请将变量声明为double或IOW: #include <iostream> using namespace std; int main() { int a,b,c; cin &g

这是整数除法问题:如果
a==5
b==10
,那么
a/b==0

参见标准,乘法运算符[expr.mul]

为了 整数操作数/运算符生成代数商,并丢弃任何小数部分

不,没有错

因为所有变量都是整数

在整数世界中,5/10是0,乘以2仍然是0

9/10也是0,但11/10是1

如果希望从中获得有用的信息,请将变量声明为double或IOW:

#include <iostream>
using namespace std;
int main() {
  int a,b,c;
  cin >> a >> b >> c;
  cout << a/b*c;
  return 0;
}
intmain(){
双a、b、c;
cin>>a>>b>>c;

cout这是整数舍入的结果。当执行整数除法时,任何分数余数都被简单地截断。因此
2/3==0

要使结果保持精确,请在表达式中使用double或将变量转换为double

int main() {
  double a,b,c;
  cin >> a >> b >> c;
  cout << a/b*c;
  return 0;
}
static_cast(static_cast(a)/static_cast(b)*static_cast(c))

将得到正确的值。

您应该将除法转换为双精度以获得预期结果Tah int为0.5到0是的,我刚刚注意到我是个白痴。如果您想保持整数运算,可以重新排列表达式:
c*a/b
。当然,当
c*a
不能被
b@Chromo-sapiens:不完全正确。您的操作中从来没有
0.5
。当您对整数进行除法时,会立即得到一个完整的商和一个提醒。
5/10
给出
0
商。
5%10
给出
5
作为余数。
static_cast<int>(static_cast<double>(a) / static_cast<double>(b) * static_cast<double>(c))