C++ 输出不符合我的预期结果,如何修复?

C++ 输出不符合我的预期结果,如何修复?,c++,C++,我的预期结果是平均值=73.5,我已将平均值类型设置为双精度,但结果为73有什么问题 #include <iostream> using namespace std; int main(){ int x=0; int total=0; double average=0; int counter=0; cout<<"Question 1"<<endl<<"Enter integer(-100 to end);"; cin>>

我的预期结果是平均值=73.5,我已将平均值类型设置为双精度,但结果为73有什么问题

  #include <iostream>
  using namespace std;

  int main(){
int x=0;
int total=0;
double average=0;
int counter=0;

cout<<"Question 1"<<endl<<"Enter integer(-100 to end);";
cin>>x;
 if (x!=-100)
 {
     for(;x!=-100;counter++)
     {
         total=total+x;
         cin>>x;
     }

      average = total/counter;
 }
 cout<<"The average is:"<<average<<endl;


 return 0 ;
#包括
使用名称空间std;
int main(){
int x=0;
int-total=0;
双平均=0;
int计数器=0;

CUT< P>整数运算结果是整数。在C和C++中,它们从不产生浮点结果。需要在计算中包含浮点值,例如

average = (1.0 * total) / counter;

整数运算结果是整数。在C和C++中,它们从不产生浮点结果。需要在计算中包含浮点值,例如

average = (1.0 * total) / counter;

整数运算结果是整数。在C和C++中,它们从不产生浮点结果。需要在计算中包含浮点值,例如

average = (1.0 * total) / counter;

整数运算结果是整数。在C和C++中,它们从不产生浮点结果。需要在计算中包含浮点值,例如

average = (1.0 * total) / counter;

您正在进行整数计算。请将其中一个整数强制转换为双精度:

average = ((double)total)/counter;

您正在进行整数计算。请将其中一个整数强制转换为双精度:

average = ((double)total)/counter;

您正在进行整数计算。请将其中一个整数强制转换为双精度:

average = ((double)total)/counter;

您正在进行整数计算。请将其中一个整数强制转换为双精度:

average = ((double)total)/counter;


由于
total
counter
都是
int
,因此该计算的结果将是
int
。有很多方法可以解决它-
(1.0*total)/计数器
是一个。由于
总计
计数器
都是
int
,该计算的结果将是
int
。有许多方法可以解决它-
(1.0*总计)/计数器
是一个。由于
总计
计数器
都是
int
,该计算的结果将是
int
。有许多方法可以解决它-
(1.0*总计)/计数器
是一个。由于
总计
计数器
都是
int
,该计算的结果将是
int
。有很多方法可以解决它-
(1.0*总计)/计数器
是一个。出于好奇,静态转换比(双精度)更可取吗只是语法上的不同。在这个例子中完全相同。谢谢你&迪特玛,还有+1@lolando:我当然更喜欢
static_cast(total)
:虽然在这种情况下,它做的完全相同,但当它不相同时,它会发现问题,例如,当C样式转换将导致
重新解释_cast()时
或a
const\u cast()
。出于好奇,静态\u cast是否优于(双精度)?只是语法上的不同。在这种情况下完全相同。谢谢你&迪特玛,还有+1@lolando:我当然更喜欢
static\u cast(总计)
:虽然在这种情况下,它的作用完全相同,但当它不相同时,它会发现问题,例如,当C样式转换将导致
重新解释转换()
常量转换()
。出于好奇,静态转换是否比(双精度)更可取只是语法上的不同。在这个例子中完全相同。谢谢你&迪特玛,还有+1@lolando:我当然更喜欢
static_cast(total)
:虽然在这种情况下,它做的完全相同,但当它不相同时,它会发现问题,例如,当C样式转换将导致
重新解释_cast()时
或a
const\u cast()
。出于好奇,静态\u cast是否优于(双精度)?只是语法上的不同。在这种情况下完全相同。谢谢你&迪特玛,还有+1@lolando:我当然更喜欢
static\u cast(总计)
:虽然在这种情况下,它的作用完全相同,但当它不相同时,它会发现问题,例如,C样式转换将导致
重新解释转换()
常量转换()