Ejercicio de lenguaje C - División entera con restas sucesivas
Escribir en lenguaje C un programa que:
1º) Pida por teclado dos números (datos enteros).
2º) En el caso de que alguno de ellos sea menor o igual que cero, muestre por pantalla el mensaje:
- "ERROR: Ambos números deben ser mayores que cero.".
En caso contrario, muestre por pantalla el resultado de realizar la división entera del primer número introducido por el usuario entre el segundo, y el resto.
Nota: No se puede utilizar el operador división (/) ni el operador módulo (%).
Si por ejemplo se quiere dividir el número 38 entre 7, en pantalla se verá:
Cuando al menos uno de los números introducidos no es mayor que cero, en pantalla se verá, algo similar a:
Solución: anidando un bucle while en un if
/* Programa: División entera con restas sucesivas */
#include <conio.h>
#include <stdio.h>
int main()
{
int cociente, dividendo, divisor, resto;
printf( "\n Introduzca dividendo (entero): " );
scanf( "%d", ÷ndo );
printf( "\n Introduzca divisor (entero): " );
scanf( "%d", &divisor );
if ( dividendo > 0 && divisor > 0 )
{
cociente = 0;
resto = dividendo;
while ( resto >= divisor )
{
resto -= divisor;
cociente++;
}
printf( "\n %d div %d = %d ( Resto = %d )", dividendo, divisor, cociente, resto );
}
else
printf( "\n ERROR: Ambos n%cmeros deben ser mayores que cero.", 163 );
getch(); /* Pausa */
return 0;
}
- Como se puede ver, el bucle while iterará cero veces cuando el usuario introduzca un dividendo menor que el divisor, o cuando introduzca alguno de ellos menor o igual que cero.