Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct
- {
- int num,numit; //numitorul>0
- } Rational;
- Rational citesteFractie()
- {
- Rational f;
- do{
- printf("p/q: ");
- fflush(stdin);
- }while(scanf("%d/%d",&f.num,&f.numit)<2||f.numit==0);
- if(f.numit<0)// 2/-3=-2/3
- {f.num=-f.num;
- f.numit=-f.numit;
- }
- simplifica(&f);
- return f;
- }
- int cmmdc(int a,int b)
- {
- int
- }
- void simplifica(Rational *pf)
- {
- int c=cmmdc(abs(pf->num),abs(pf->numit));
- pf-> num/=c;
- pf-> numit /=c;
- }
- Rational aduna(Rational f1,Rational f2)
- {
- Rational r;
- r.num=f1.num*f2.numit+f1.numit*f2.num;
- r.numit=f1.numit*f2.numit;
- simplifica(&r);
- return r;
- }
- void afis(Rational f)
- {
- printf("%d",f.num);
- if(f.num!=0 && f.numit!=1)
- printf("/%d",f.numit);
- }
- int main()
- {
- Rational f1,f2,r;
- printf("Prima fractie: \n");
- f1=citesteFractie();
- printf("A doua fractie: \n");
- f2=citesteFractie();
- r=aduna(f1,f2);
- afis(f1);
- printf("+");
- afis(f2);
- printf("=");
- afis(r);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement