Zadání:
Sestavte program, který převede zlomek na základní tvar.
Řešení:
Program využívá program 04.25 - hledání největšího společného dělitele. Na začátku programu otestujeme, zda
jmenovatel není nulový. Pokud ano, vytiskneme chybové hlášení. Poté otestujeme čitatel na nulovou hodnotu.
Pokud ji obsahuje, vytiskneme hlášení o nulovém zlomku. Pokud ani jedna zadaná hodnota není nulová, zjistíme
znaménko výsledného zlomku, absolutní hodnotou odstraníme znaménka čitatele i jmenovatele a dalčí část
programu zjistí největší společný dělitel jmenovatele a čitatele. Poté čitatel a jmenovatele vydělíme největším
společným dělitelem a výsledek vytiskneme včetně znaménka.
#include "stdafx.h"
#include "math.h"
#include
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int a,b,c,j,nsd;
char znamenko;
printf("Zadejte citatel: ");
scanf_s("%d",&a,1);
printf("Zadejte jmenovatel: ");
scanf_s("%d",&b,1);
if (b==0) printf("Nelze vypocitat.\n");
else
{
if (a==0) printf("Zlomek v zakladnim tvaru: 0\n");
else
{
if (a*b<0) znamenko='-';
else znamenko=' ';
c=abs(a);
j=abs(b);
while (c!=j)
{
if (c>j) c=c-j;
else j=j-c;
}
nsd=c;
c=abs(a)/nsd;
j=abs(b)/nsd;
if (j==1) printf("Zlomek v zakladnim tvaru: %c%d\n",znamenko,c);
else printf("Zlomek v zakladnim tvaru: %c%d/%d\n",znamenko,c,j);
}
}
system("pause");
return 0;
}
program ke stažení