error C2296: '^' : illegal, left operand has type 'double'拜托各位大神

#include"stdafx.h"#include<iostream>#include<cmath>usingnamespacestd;voidmain(){inta=... #include "stdafx.h" #include <iostream> #include <cmath> using namespace std; void main() { int a=2,b=1,i; int c,n=3,k=2; double s,s1,s2,m=5; cout<<"请输入需要计算的项数:"; cin>>c; for(i=0;i<c;i++) { s1=(((((1+sqrt(m))/2)^n)/sqrt(m))-((((1-sqrt(m))/2)^n)/sqrt(m))); s2=(((((1+sqrt(m))/2)^k)/sqrt(m))-((((1-sqrt(m))/2)^k)/sqrt(m))); s+=s1/s2; n++;k++; } cout<<"计算结果为:"<<s<<endl; } 百思不解, 什么意思哦这错误? error C2296: '^' : illegal, left operand has type 'double' 展开
 我来答
黎约践踏PCZI
2015-01-17 · TA获得超过154个赞
知道答主
回答量:140
采纳率:83%
帮助的人:67.9万
展开全部
^是异或运算,它要求是整型,而sqrt是double,你可以用一个(int)强制转换一下 另外,没看懂你为什么^n, 是不是你以前用VB的,在C中用幂的话使用pow(x,n)函数,用math.h头文件 追问: #include "stdafx.h" #include <iostream> #include <math.h> using namespace std; void main() { int a=2,b=1,i; int c,n=3,k=2; double s,s1,s2,m=5; cout<<"请输入需要计算的项数:"; cin>>c; for(i=0;i<c;i++) { s1=((pow(((1+sqrt(m))/2),n)/sqrt(m))-((pow((1-sqrt(m))/2),n)/sqrt(m))); s2=((pow(((1+sqrt(m))/2),k)/sqrt(m))-((pow((1-sqrt(m))/2),k)/sqrt(m))); s+=s1/s2; n++;k++; } cout<<"计算结果为:"<<s<<endl; } 我修改了用pow(x,n)函数后出现这个错误。。。 error C2661: 'pow' : no overloaded function takes 1 arguments 回答: 括号配对出错了 Pow(1-sqrt(m)/2,k) 追问: 我的公式是a(n)=[(1+√5)/2]^n/√5-[(1-√5)/2]^n/√5 Pow(1-sqrt(m)/2,k)这样就成了a(n)=[1+√5/2]^n/√5-[1-√5/2]^n/√5了啊 回答: [(1+√5)/2]^n/√5-[(1-√5)/2]^n/√5 pow((1+sqrt(5))/2,n)/sqrt(5)-pow((1-sqrt(5))/2,n)/sqrt(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式