Autor Tema: C (LenguajeC) Uso de bucle for ciclos iteraciones calcular resto mod CU00533F  (Leído 2972 veces)

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Hola, dejo una posible solución al ejercicio CU00533F.

Citar
EJERCICIO Nº 1
Escribe un programa que use un bucle for para mostrar el resultado de multiplicar los números del 1 al 20 por el resultado de obtener el módulo (resto de la división que se obtiene usando el operador % de C) de dicho número con un número elegido por el usuario.
Ejemplo: el usuario elige el número tres. Los cálculos a realizar serán: resto de 1 entre 3 es 1, por pantalla se mostrará un 1, resto de 2 entre 3 es 2, por pantalla se mostrará un 2, resto de 3 entre 3 es cero, por pantalla se mostrará un cero, resto de 4 entre 3 es 1, por pantalla se mostrará un 1… así hasta terminar con resto de 20 entre 3 es 2, por pantalla se mostrará un 2.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int main(){
    int num = 0;
    int i = 0;
    printf("Introduzca un n\xA3mero entero: ");
    scanf("%d", &num);
    for (i = 0; i <= 20; i++) {
        printf("resto de %d entre %d es %d\n", i, num, i % num);
    }
    return 0;
}

Citar
EJERCICIO Nº 2
Escribe un programa 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 elegidos por el usuario.
Ejemplo: el usuario elige como base el 4 y como exponente el 3. El programa debe mostrar el resultado de multiplicar la base por sí misma 3 veces, en este ejemplo 4*4*4 = 64.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int main() {
    int numBase = 0;
    int numExponente = 0;
    int i = 0;
    int resultado = 0;
    puts("Programa que calcula la potencia de un n\xA3mero me diante un bucle for.");
    printf("Introduzca el n\xA3mero base: ");
    scanf("%d", &numBase);
    printf("Introduzca el exponente: ");
    scanf("%d", &numExponente);
    for (i = 1; i <= numExponente; i++) {
        if (i==1){
            resultado = numBase;
        } else {
            resultado = resultado * numBase;
        }
    }
    printf("El resultado es: %d", resultado);
    return 0;
}

Saludos.  ;D
« Última modificación: 30 de Mayo 2016, 22:37 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re: C (LenguajeC) Uso de bucle for. CU00533F
« Respuesta #1 en: 30 de Mayo 2016, 22:36 »
Hola! Viendo tu respuesta al primer ejercicio se me plantea la duda ¿Haces lo que pide el enunciado referente a ir desde 1 a 20, o vas desde cero a 20? Tampoco es de gran importancia pero creo que vas de 0 a 20 aunque no lo he ejecutado.

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Hola César, tienes razón, el código ejecuta desde 0 hasta 20, ahora lo corrijo.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int main(){
    int num = 0;
    int i = 0;
    printf("Introduzca un n\xA3mero entero: ");
    scanf("%d", &num);
    for (i = 1; i <= 20; i++) {
        printf("resto de %d entre %d es %d\n", i, num, i % num);
    }
    return 0;
}

Saludos y gracias por corregir.

Daniloboy

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 15
    • Ver Perfil
El segundo ejercicio de las potencias se puede realizar así también:
Código: [Seleccionar]
#include <stdio.h>

int main() {

int base, exp, potencia = 1, i;

printf("Base aqui: ");
scanf("%d", &base);

printf("Exponente aqui: ");
scanf("%d", &exp);

for(i=1; i<=exp; i++){
    if (exp == 0){
        printf("Resultado de potencia: %d", potencia);
    }
    else {
potencia = potencia*base;
    }

}
  printf ("El resultado de la potencia  %d elevado a %d es: %d\n\n\n", base,exp,potencia );

return 0;
}

Lo que no consigo realizar es mostrar la base tantas veces como el exponente indica en plan: El resultado de la potencia 2^4 >>> 2*2*2*2 = 16

Un saludo
« Última modificación: 31 de Mayo 2016, 14:56 por Daniloboy »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Prueba añadir esto al final de tu código.

Código: [Seleccionar]
    printf ("El resultado de la potencia  %d elevado a %d es: %d", base,exp, base );
    for (i=1; i<exp; i++)
    {
        printf (" X %d ", base);
    }
    printf ("= %d\n\n\n", potencia );

Saludos.

Daniloboy

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 15
    • Ver Perfil
¡Hey, gracias! No se me ocurrio volver a usar el bucle for, estaba en todo el curso cegado a solo usar un bucle para mostrarlo todo y en mi mente "bloquee" la opción de volver a utilizarlo en otro lugar.

Una cosa que corregí es que en la linea que escribiste donde muestras la base se me muestra como X4 X4 etc... es mejor poner el %d antes de la X para que se muestren los numeros así: 4X4X4X etc...

Código: [Seleccionar]
printf("%dX", base);
Gracias y un saludo  8)

 

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