为什么我的电力运营商(^)不工作?

#include "stdio.h" #include "math.h" void main(void) { int a; int result; int sum=0; printf("Enter a Number : "); scanf("%d",&a); for(int i=1;i<=4;i++) { result = a^i; sum =sum+result; } printf("%d\n",sum); } 

我不知道为什么这个'^'不是作为权力。 请帮忙。

那么首先,C / C ++中的^运算符是按位异或。 这与权力无关。

现在,关于使用pow()函数的问题, 一些使用googling显示的参数之一是double:

 result = (int) pow((double) a,i); 

请注意,我也将结果转换为int因为所有pow()重载都返回double,而不是int 。 我没有可用的MS编译器,所以我不能检查上面的代码。

自C99以来, 也有floatlong double函数分别称为powfpowl ,如果有任何帮助。

在C ^是按位XOR:

 0101 ^ 1100 = 1001 // in binary 

没有操作员的权力,你需要使用math.h(或其他类似的function)的pow函数:

 result = pow( a, i ); 

pow()不能与int工作,因此错误“error C2668:'pow':模糊调用重载函数”

http://www.cplusplus.com/reference/clibrary/cmath/pow/

写下你自己的幂函数int s:

 int power(int base, int exp) { int result = 1; while(exp) { result *= base; exp--; } return result; } 

首先^是一个按位异或操作符, 不是操作符。

你可以使用其他的东西来find任何数字的力量。 您可以使用for循环来查找任何数字的权力

这是一个程序findx ^ y即x y

 double i, x, y, pow; x = 2; y = 5; pow = 1; for(i=1; i<=y; i++) { pow = pow * x; } printf("2^5 = %lf", pow); 

你也可以简单地使用pow()函数来查找任意数量的权力

 double power, x, y; x = 2; y = 5; power = pow(x, y); /* include math.h header file */ printf("2^5 = %lf", power); 

你实际上必须使用pow(数量,功率); 不幸的是,克拉不能作为C的权力标志。许多时候,如果你发现自己不能用另一种语言做某件事情,那是因为它有一个不同的function。

包括math.h并用gcc test.c -lm编译

不使用^ ,而是使用“pow”函数,该函数是执行Power操作的预定义函数,可以通过包含math.h头文件来使用。

^此符号在C,C ++中执行BIT-WISE XOR操作。

pow(a,i)replacea^i pow(a,i)