Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: pedro,, en 23 de Mayo 2016, 13:05
-
Hola, dejo una posible solución al ejercicio CU00533F.
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.
#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;
}
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.
#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
-
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!
-
Hola César, tienes razón, el código ejecuta desde 0 hasta 20, ahora lo corrijo.
#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.
-
El segundo ejercicio de las potencias se puede realizar así también:
#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
-
Prueba añadir esto al final de tu código.
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.
-
¡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...
printf("%dX", base);
Gracias y un saludo 8)