Informatică, întrebare adresată de edy666666, 9 ani în urmă

Cerinţa Se dau 4 numere naturale a b c d, reprezentând fracţiile a/b şi c/d. Determinați și afișați cea mai mare dintre cele două fracții. Date de intrare Programul citește de la tastatură numerele a b c d. Date de ieşire Programul afișează pe ecran numerele m n, separate prin exact un spațiu, reprezentând numărătorul şi numitorul fracției maxime, adusă la forma ireductibilă.


artur99: aaa, stai, da' a zis că-s naturale
artur99: infinitul e natural, vere?
AntiEaglesDavids: infinitul e infinitzecimal vere
artur99: Păi atunci e greșită întrebarea, că dacă-i dai 0 în capăt îți dă chestie de aia cu not responding, nu?
AntiEaglesDavids: am avut cazu asta in jocu meu si nu s-a intamplat nimic :)))) deci nu stiu
artur99: =)))
AntiEaglesDavids: cate linii ai vere?
artur99: wot, ape stai că eu mă mutasem la cealaltă, că asta o luase ionutg38
AntiEaglesDavids: NUUU TERMINA ASTA
artur99: ok, stai că fac acuma

Răspunsuri la întrebare

Răspuns de ionutg38
5
#include <iostream>

using namespace std;

int main()
{
    int a,b,c,d;
    cin>>a>>b>>c>>d;
    while(a%2==0&&b%2==0)
            a/=2,b/=2;
    for(int i=3;i*i<=a;i+=2)
        while(a%i==0&&b%i==0)
            a/=i,b/=i;
    while(c%2==0&&d%2==0)
            c/=2,d/=2;
    for(int i=3;i*i<=c;i+=2)
        while(c%i==0&&d%i==0)
            c/=i,d/=i;
    if(a/b>c/d)
        cout<<a<<' '<<b;
    else
        cout<<c<<' '<<d;
    return 0;
}

artur99: Păi aș putea, dar nu știu dacă am voie fără să fie vinovat de ceva
artur99: aa, de fapt, de greșeală gramaticală, stai
artur99: ba nuu, îl las așa :P
ionutg38: #include <iostream>
#include <cmath>
using namespace std;

struct Fractie{
int numarator, numitor;
};

void Citire(Fractie & P);
void Afisare(Fractie P);
void Simplificare(Fractie & P);
int Cmmdc(int a , int b);
int FCmp(Fractie A , Fractie B);

int main()
{
Fractie A , B;
Citire(A), Citire(B);
if(FCmp(A,B) > 0)
Afisare(A);
else
Afisare(B);
}

int Cmmdc(int a , int b)
{
if(b == 0)
return a;
else
return Cmmdc(b , a % b);
}
ionutg38: void Citire(Fractie & P)
{
cin >> P.numarator >> P.numitor;
Simplificare(P);
}

void Afisare(Fractie P)
{
cout << P.numarator << " " << P.numitor;
}

void Simplificare(Fractie & P)
{
int x = Cmmdc(P.numarator, P.numitor);
P.numarator /= x;
P.numitor /= x;
}

int FCmp(Fractie A , Fractie B)
{
// returneaza -1 , 0 sau 1
if(A.numarator * B.numitor < A.numitor * B.numarator)
return -1;
if(A.numarator * B.numitor > A.numitor * B.numarator)
return 1;
return 0;
}
ionutg38: asa e mai bine?
AntiEaglesDavids: de unde ai copiat codu?
ionutg38: N-are rost sa ne mai contram. Eu n-am avut intentia asta. Va las pe voi sa ajutati. Eu ma retrag. O seara buna!
AntiEaglesDavids: pai ce ai scris initial este complet diferit ca stil de ce ai scris in comentariul asta deci prin urmare inclin sa cred ca ai copiat ce ai scris in comentariu deoarece un om nu-si schimba el stilul asa intr-o secunda
artur99: Iartă-ne, Ionuț, ne jucam și noi pe aici cu codul, că a trecut vremea și nu prea mai intrasem amândoi pe brainly :/
Răspuns de AntiEaglesDavids
0
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int a, b, c, d;
    cin >> a >> b >> c >> d;
    cout << ((float(a) / b > float(c) / d) ? a / __gcd(a, b) : c / __gcd(c, d)) << '/' << ((float(a) / b > float(c) / d) ? b / __gcd(a, b) : d / __gcd(c, d));
    return 0;
} // 2easy



AntiEaglesDavids: eh pai sa nu puna impartirea cu 0 :)))
AntiEaglesDavids: cine face asta :)))
artur99: Hai pe aia la care ți-am trimis link pe fb
artur99: Păi, păi
artur99: testerul
AntiEaglesDavids: ok
artur99: Mai sabotează
AntiEaglesDavids: da-mi mesaj aici cu linku ca sunt pe tel
artur99: ook
artur99: http://brainly.ro/tema/2740812
Alte întrebări interesante