#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);
}
我不知道为什么这个'^'不起作用。
答案 0 :(得分:70)
嗯,首先,C / C ++中的^
运算符是逐位XOR。它与权力无关。
现在,关于使用pow()
函数的问题,some googling显示将其中一个参数转换为double有助于:
result = (int) pow((double) a,i);
请注意,我还将结果转换为int
,因为所有pow()
重载都返回double,而不是int
。我没有可用的MS编译器,所以我无法检查上面的代码。
自C99 there are also float
and long double
functions called powf
and powl
respectively以来,如果有任何帮助。
答案 1 :(得分:62)
在C ^
中是按位异或:
0101 ^ 1100 = 1001 // in binary
没有操作员的电源,你需要使用math.h中的pow
函数(或其他类似函数):
result = pow( a, i );
答案 2 :(得分:6)
pow()不能与int
一起使用,因此错误“错误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;
}
答案 3 :(得分:3)
首先^
是Bitwise XOR operator 不电力运营商。
您可以使用其他东西来查找任何数字的力量。您可以使用for loop to find power of any number
这是一个找到x ^ 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() function to find power of any number
double power, x, y;
x = 2;
y = 5;
power = pow(x, y); /* include math.h header file */
printf("2^5 = %lf", power);
答案 4 :(得分:2)
包括math.h并使用gcc test.c -lm
进行编译答案 5 :(得分:1)
你实际上必须使用pow(数量,力量);不幸的是,克拉不能用作C中的电源符号。很多时候,如果你发现自己无法用其他语言做某事,那就是因为有一个不同的功能可以帮助你。
答案 6 :(得分:1)
如果您正在尝试计算以 2 为底的幂,则可以使用按位移位运算符来计算幂。例如,假设您想计算 2 的 8 次方。
2 << 7
答案 7 :(得分:0)
无法使用^
(按位XOR)运算符来计算数字的幂。
因此,为了计算数字的幂,我们有两种选择,要么使用while循环,要么使用pow() function。
1。。使用while循环。
#include <stdio.h>
int main() {
int base, expo;
long long result = 1;
printf("Enter a base no.: ");
scanf("%d", &base);
printf("Enter an exponent: ");
scanf("%d", &expo);
while (expo != 0) {
result *= base;
--expo;
}
printf("Answer = %lld", result);
return 0;
}
2。。使用pow()
功能
#include <math.h>
#include <stdio.h>
int main() {
double base, exp, result;
printf("Enter a base number: ");
scanf("%lf", &base);
printf("Enter an exponent: ");
scanf("%lf", &exp);
// calculate the power of our input numbers
result = pow(base, exp);
printf("%.1lf^%.1lf = %.2lf", base, exp, result);
return 0;
}
答案 8 :(得分:0)
它不起作用,因为 c 和 c++ 没有任何运算符来执行幂运算。
你可以做的是,你可以使用 math.h 库并使用 pow 函数。
` #include<stdio.h>
#include<math.h>
int main(){
int base = 3;
int power = 5;
pow(double(base), double(power));
return 0;
}`
答案 9 :(得分:-3)
使用'pow'函数代替使用^
,这是一个执行Power操作的预定义函数,可以通过包含math.h
头文件来使用它。
^
此符号在C,C ++中执行BIT-WISE XOR操作。
将a^i
替换为pow(a,i)
。