¿Por qué mi operador de energía (^) no funciona?

#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); } 

No sé por qué este ‘^’ no funciona como poder.

Bueno, antes que nada, el operador ^ en C / C ++ es el XOR de bits. No tiene nada que ver con los poderes.

Ahora, con respecto a su problema con el uso de la función pow() , algunos googlean muestran que lanzar uno de los argumentos para duplicar ayuda:

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

Tenga en cuenta que también echo el resultado a int ya que todas las sobrecargas pow() devuelven doble, no int . No tengo un comstackdor de MS disponible, así que no pude verificar el código anterior.

Desde C99, también hay funciones long double float y long double llamadas powf y powl , respectivamente , si eso sirve de ayuda.

En C ^ es el XOR bit a bit:

 0101 ^ 1100 = 1001 // in binary 

No hay operador para el poder, necesitarás usar la función pow de math.h (o alguna otra función similar):

 result = pow( a, i ); 

pow () no funciona con int , de ahí el error “error C2668: ‘pow’: llamada ambigua a la función sobrecargada”

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

Escribe tu propia función de potencia para int s:

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

Primero que nada ^ es un operador Bitwise XOR no operador de energía.

Puedes usar otras cosas para encontrar el poder de cualquier número. Puedes usar for loop para encontrar el poder de cualquier número

Aquí hay un progtwig para encontrar x ^ y es decir, 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); 

También puedes simplemente usar la función pow () para encontrar la potencia de cualquier número

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

De hecho, tienes que usar pow (número, potencia) ;. Desafortunadamente, los quilates no funcionan como un signo de poder en C. Muchas veces, si no puede hacer algo de otro idioma, es porque hay una función diferente que lo hace por usted.

incluye math.h y comstack con gcc test.c -lm

En lugar de usar ^ , use la función ‘pow’, que es una función predefinida que realiza la operación Power y puede ser utilizada incluyendo el archivo de encabezado math.h

^ Este símbolo realiza la operación BIT-WISE XOR en C, C ++.

Reemplace a^i con pow(a,i) .