Tutoriales de informática - Abrirllave.com

Abrirllave.com

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:

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á:

Visualización en pantalla del programa División entera con restas sucesivas, resuelto en lenguaje C.

Cuando al menos uno de los números introducidos no es mayor que cero, en pantalla se verá, algo similar a:

Visualización en pantalla del programa División entera con restas sucesivas, mostrando un error, resuelto en lenguaje C.

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", &dividendo );
    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;
}