Sei que já faz tempo da sua pergunta, mas tive problema com está mesma questão recentemente, então para as pessoas que teve duvidas com eu, primeiro só achei uma forma para resolver está questão que com auxilio do for ou while, a simplificação só vai sair deste jeito, então não adianta fazer ela sem está ferramenta;:
int main()
{
...
for(int i=2;i<=den;)
{
if(i==2)
{
for(int j=i;;)
{
if(num%i==0 && den%i==0)
{
num=num/i;
den=den/i;
}
else
{
break;
}
}
i=i+1;
}
else
{
for(int j=i;;)
{
if(num%i==0 && den%i==0)
{
num=num/i;
den=den/i;
}
else
{
break;
}
}
i=i+2;
}
}
...
return 0;
}
Outra duvida que eu tive foi como receber a fração e separa os números para trabalhar com eles, eu criei 9 variaveis iniciais sendo 6 int é 3 char para separa os caracteres dos números:
int main()
{
int a, b, c, d, num, den;
char x, y, z;
scanf("%d %c %d %c %d %c %d",&a,&x,&b,&y,&c,&z,&d);
//printf("%d %c %d %c %d %c %d ",a,x,b,y,c,z,d);
...
return 0;
}
E o resto e matemática básica de frações