info1_uebungen/05/quadPlatten.c
2026-04-30 12:48:13 +02:00

58 lines
2.5 KiB
C

/****************************************************************************************
* Schreiben Sie ein Programm, das die Laenge und Breite eines Platzes einliest und *
* ausgibt, wie viele quadratische Platten benoetigt werden, um die Flaeche komplett *
* zu bedecken. Dabei sollen so wenig Platten wie möglich verwendet werden. *
* *
* Beispiel: *
* Geben Sie die Laenge des Platzes ein. *
* >> Geben Sie eine positive, ganze Zahl ein: gfdgfd *
* >> Geben Sie eine positive, ganze Zahl ein: -5 *
* >> Geben Sie eine positive, ganze Zahl ein: 55 *
* Geben Sie die Breite des Platzes ein. *
* >> Geben Sie eine positive, ganze Zahl ein: 0 *
* >> Geben Sie eine positive, ganze Zahl ein: rtre *
* >> Geben Sie eine positive, ganze Zahl ein: 100 *
* Sie benoetigen 220 Platten der Groesse 5x5. *
****************************************************************************************/
#include <stdio.h>
#include "../io/myio.h"
unsigned int inputPositiveNumber(const char *text);
unsigned int getGreatestCommonDivisor(unsigned int number1, unsigned int number2);
int main()
{
unsigned int squareWidth = inputPositiveNumber("Geben Sie die Breite des Platzes ein: ");
unsigned int sqaureHeight = inputPositiveNumber("Geben Sie die Hoehe des Platzes ein: ");
unsigned int tileSize = getGreatestCommonDivisor(squareWidth, sqaureHeight);
unsigned int tileCount = (squareWidth * sqaureHeight) / (tileSize * tileSize);
printf("Sie benoetigen %d Platten der Groesse %dx%d.\n", tileCount, tileSize, tileSize);
return 0;
}
unsigned int inputPositiveNumber(const char *text)
{
int number = -1;
while(number <= 0)
{
number = getNumber(text);
}
return number;
}
unsigned int getGreatestCommonDivisor(unsigned int number1, unsigned int number2)
{
while(number2 > 0)
{
unsigned int error = number1 % number2;
number1 = number2;
number2 = error;
}
return number1;
}