Les dejo el code.
printf("Coloque la base");
scanf("%d",&a);
printf("Coloque el Exponente");
scanf("%d",&b);
resultado = a * a;
while(n <= b);
{
resultado = resultado * a;
n = n++;
}
printf("Resultado\n%d",resultado);
getch();
break;
Porque no funciona?
Pone todo el codigo, especialmente donde declaras las variable a y b. Por cierto:
//Notese que le agregaste un ; lo cual hace un bucle hasta que termine la cuenta
//y luego sigue ejecutando lo que esta entre los { }
while(n <= b);
{
resultado = resultado * a;
n = n++;
}
No seria mejor usar un bucle for?
for(n=1;n<=b;n++)
resultado = resultado*a;
y eliminas el primer
resultado = resultado*a;
y recuerda que tienes que declarar a y b como int.
Saludos
No entiendo eso del punto y coma despues del while. Cual es la diferencia en si lo pongo y en si no???
La verdad, disculpame por mi ignorancia, pero no entiendo el for. Que quiere decir alli. Que mientras n sea igual a 1, y n sea menor o igual a b, aumenta uno a n???
Nota: Si, las declare como enteros.
Saludos y un millon de gracias de antemano.
for(n=1;n<=b;n++)
resultado = resultado*a;
Una explicacion rapida, iniciamos n con el valor 1, mientras n sea igual o menor a b aumentamos n y realizamos la accion.
Sobre lo del while, si escribes
while(n <= b);
{
resultado = resultado * a;
n = n++;
}
Se puede producir bucle infinito, ya que while espera a que n sea igual o menor a b y luego ejecuta lo que esta entre los { } (en caso de que el compilador acepte eso)
En cambio, sin el ; lo que esta entre los parentesis es parte del while.
Saludos
Fragmento con el ;
Tu código:
while(n <= b);
{
resultado = resultado * a;
n = n++;
}
Lo que el compilador interpreta como dentro del while
while(n <= b);
//nada más
Sin el ; el while tiene el efecto que tu deseas
while(n <= b)
{
resultado = resultado * a;
n = n++;
}
La diferencia entre la aparición del ; y no, es que el while no tiene instrucciones dentro. O dicho de otra forma, el ; marca el final del bloque while
Aaaaa, claro.
Muchisimas gracias, en un rato lo pruebo.
De nadas :)
Por cierto... no olvides que debes iniciar n con el valor 1 y no 0, o darle el valor 1 (lo segundo en caso de que uses for), ya que supongo que sabras que pasa si pones 0 no? Epic Fail xd
Edito: otra forma de eliminar ese problema puede ser:
for(n=0;n<b;n++)
resultado = resultado*a;
Saludos
gracias, te lo agradezco mucho.