C++一个关于double相加出错的问题!!大神速来!

超级神奇 2012-11-20 05:21:19
//----------这是一个求均方差的问题!----------------


数据定义是这样的
int a[100];
int n,i,j,m,sum1=0;
double ave,s,sum2=0;


//----中间省略了,出错点在下面----------------
a[0]=m;
for(i=0;i<=m;i++)
{sum1=sum1+a[i];}
ave=((double)sum1/(m+1));
for(i=0;i<=m;i++)
运行到这步说有错,错那里了额……
{sum2=sum2+((a[i]-ave)^2;}//此处提示说invalid operands to binary expression (`double`and`double`) 有错,求解。
...全文
392 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
newtee 2012-11-20
  • 打赏
  • 举报
回复
(a[i]-ave)*(a[i]-ave)吧! #include<math.h> pow((a[i]-ave),2)
little_angel 2012-11-20
  • 打赏
  • 举报
回复
原型:在TC2.0中原型为extern float pow(float x, float y); 而在VC6.0中原型为double pow( double x, double y );    头文件:math.h   功能:计算x的y次幂。    返回值:x应大于零,返回幂指数的结果。    返回类型:double型,int,float会给与警告!    举例1:(在VC6.0中运行通过)

#include <math.h> 
#include <stdio.h>  
int main(void) 
  {  
  double x = 2.0, y = 3.0; 
  printf("%lf raised to %lf is %lf\n", x, y, pow(x, y)); 
  return 0;   } 
转角天边 2012-11-20
  • 打赏
  • 举报
回复
{sum2=sum2+((a[i]-ave)^2);} ^这是异或操作符,它的左操作数不能是“double”类型吧
www_adintr_com 2012-11-20
  • 打赏
  • 举报
回复
(a[i]-ave)^2 你是想求 (a[i]-ave) 的平方吗? C++ 没有求平方的操作符, ^ 是按位异或, 求平方要用 pow 函数
baichi4141 2012-11-20
  • 打赏
  • 举报
回复
嗯,我只问一个问题 楼主知道^这个符号是什么意思吗?

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧