Hola, dejo una posible solución al ejercicio CU00549F del tutorial de programación online en lenguaje C.
EJERCICIO Nº1
Escribe una función que use un bucle for para calcular la potencia de un número al que denominaremos base sobre otro número al que denominaremos exponente, ambos recibidos como parámetros.
Ejemplo: la función recibe como base el 4 y como exponente el 3. El resultado devuelto debe ser el resultado de multiplicar la base por sí misma 3 veces, en este ejemplo 4*4*4 = 64.
Escribe un programa donde se pida al usuario base y exponente y se muestre el resultado de calcular la potencia (base elevada al exponente). Tras esto, se debe pedir al usuario si quiere repetir con otros datos o no (s/n). En caso de que el usuario elija s se le volverá a pedir base y exponente, y en caso contrario el programa debe finalizar.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double potencia(double numBase, int numExponente);
int main(){
double base = 0;
int exponente = 0;
char respuesta = 's';
puts("Calcular la potencia de un n\xA3mero.\n\n");
while(respuesta == 's' || respuesta == 'S') {
printf("Introduce la base de la potencia: ");
scanf("%lf", &base);
printf("Introduce el exponente de la potencia: ");
scanf("%d", &exponente);
printf("El resultado de %.2lf elevado a %d es: %.2lf\n", base, exponente, potencia(base, exponente));
printf("\n\nCalcular otra potencia (S/N)? ");
fflush( stdin ); // Se usa para limpiar el intro que queda en el buffer
scanf("%c", &respuesta);
}
return 0;
}
double potencia(double numBase, int numExponente) {
int i = 0;
double resultado = numBase;
for(i=0; i<numExponente-1; i++){
resultado = resultado * numBase;
}
return resultado;
}
EJERCICIO Nº 2
Estudia el siguiente código y responde a las preguntas:
#include <stdio.h>
#include <stdlib.h>
// Ejercicios curso C aprenderaprogramar.com
void stars2 (int n) {
int i;
for (i=1; i<=n; ++i) {
printf ("*");
}
printf ("\n");
}
int main (void) {
int a;
a=10;
stars2 (20);
stars2 (a);
stars2 (a+2);
return (0);
}
a) ¿Cuántas funciones se declaran en este código? ¿Es main una función?
Hay dos funciones. Si.
b) Explica cuántos parámetros reciben y de qué tipo son los parámetros para cada una de las funciones que existan en este código.
La función stars2 recive un parámetro de tipo entero.
La función main recive "void", es decir no recibe nada.
c) ¿Cuántas veces se invoca la función stars2 en el código? ¿Qué ocurre con cada una de esas invocaciones? ¿Cuál es el valor devuelto por la función stars2?
Tres veces. La primera vez, se imprimen por pantalla 20 asteriscos, las segunda 10 y la tercera 12.
Esta función no devuelve ningún valor.
d) ¿Qué ocurre si escribimos stars2(0)? ¿Por qué?
Que en la función stars2() no se ejecutara el bucle for, ejecutandose nada más la última línea de esta función
que imprime un salto de línea. Esto ocurre porque el bucle debería de ir desde i=1 hasta i<=n, y n al ser cero, i ya no
puede ser menor que n.
Saludos.