Navigace: Hlavní stránka -> Jazyk C -> 04 Cykly -> 04.26 Převod zlomku na základní tvar

MENU

04.26 Převod zlomku na základní tvar

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í