case 5:
printf("Coloque la base");
scanf("%d",&a);
printf("Coloque el Exponente");
scanf("%d",&b);
do {
resultado = a * a;
n = n++;
}while(n != b);
printf("Resultado\n%d",resultado);
getch();
break;
Esto es parte de una calculadora que me estuve armando, ya llena de funciones de diferentes tipos. Pero aqui tengo un problema. Se me ocurrio inventarme algo asi para hacer la potencia, pero me doy cuenta de que no anda, no me da el resultado. Porque??
De antemano gracias
Claro que no te da. Lo que guardas en resultado es a*a. En cada iteración guardas a*a. A ver, lo que deberías hacer es olvidarte del bucle do..while y hacerlo con un bucle while. Inicializas resultado a 1 y lo que haces en cada iteración es multiplicar resultado por a (es decir, resultado *= a o resultado = resultado*a).
Saludos
Que es un bucle While????
Para explicarte lo que es el bucle while, te pondré un ejemplo de do-while y sus diferencias con while.
Si por ejemplo pones en un programa
i=12;
do{
i++;
printf("Aumento 1 a i, ya que ahora es %d",i);
}while(i<=11);
Ahí SIEMPRE ejecutará lo que está dentro del do, como mínimo, una vez. Ya, si cumple la condición del while, se ejecuta más veces.
Sin embargo, si pones
i=12;
while(i<=11){
i++;
printf("Aumento 1 a i, ya que ahora es %d",i);
}
Primero se comprueba si se cumple la condición, por lo que en este caso no se ejecuta ninguna vez (al contrario que cuando lo pusimos en un bucle do-while, que se ejecutó una vez).
Espero haberme explicado bien.
Saludos.
Cita de: Anastacio en 1 Febrero 2012, 22:39 PMQue es un bucle While????
Espero lo tomes como una critica constructiva: el objetivo de los foros no es enseñar los lenguajes C y C++ en su totalidad, lo es el responder a dudas concretas cuando se tienen problemas en la comprensión de un tópico en particular.
Buena parte de las preguntas que estas realizando en los foros podrías haberlas solucionado de una forma mas fácil (para ti) si tomas un libro de calidad y lo lees con calma y cuidado.
----
Aparte de lo ya comentado por
Xandrete hay otro error:
n = n++;
No es valido primero porque no es posible conocer cuando el incremento del operador "++" tendrá efecto y segundo porque se esta modificando un objeto (la variable "n") en mas de una ocasión (entre puntos de secuencia, si eres un principiante eso lo aprenderás después).
Un saludo