Autor Tema: fflush(stdin) limpiar el buffer C (LenguajeC) Funciones parámetros CU00549F  (Leído 10000 veces)

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Hola, dejo una posible solución al ejercicio CU00549F del tutorial de programación online en lenguaje C.

Citar
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.

Código: [Seleccionar]
#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;
}

Citar
EJERCICIO Nº 2
Estudia el siguiente código y responde a las preguntas:
Código: [Seleccionar]
#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);
}

Citar
a) ¿Cuántas funciones se declaran en este código? ¿Es main una función?

Hay dos funciones. Si.

Citar
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.

Citar
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.

Citar
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. ;D
« Última modificación: 08 de Julio 2016, 19:11 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas todo perfecto otra vez  :D

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".