Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. typedef struct
  7. {
  8. int num,numit; //numitorul>0
  9. } Rational;
  10. Rational citesteFractie()
  11. {
  12. Rational f;
  13. do{
  14. printf("p/q: ");
  15. fflush(stdin);
  16. }while(scanf("%d/%d",&f.num,&f.numit)<2||f.numit==0);
  17. if(f.numit<0)// 2/-3=-2/3
  18. {f.num=-f.num;
  19. f.numit=-f.numit;
  20. }
  21. simplifica(&f);
  22. return f;
  23. }
  24.  
  25. int cmmdc(int a,int b)
  26. {
  27. int
  28. }
  29. void simplifica(Rational *pf)
  30. {
  31. int c=cmmdc(abs(pf->num),abs(pf->numit));
  32. pf-> num/=c;
  33. pf-> numit /=c;
  34. }
  35. Rational aduna(Rational f1,Rational f2)
  36. {
  37. Rational r;
  38. r.num=f1.num*f2.numit+f1.numit*f2.num;
  39. r.numit=f1.numit*f2.numit;
  40. simplifica(&r);
  41. return r;
  42.  
  43. }
  44.  
  45. void afis(Rational f)
  46. {
  47. printf("%d",f.num);
  48. if(f.num!=0 && f.numit!=1)
  49. printf("/%d",f.numit);
  50. }
  51. int main()
  52. {
  53. Rational f1,f2,r;
  54. printf("Prima fractie: \n");
  55. f1=citesteFractie();
  56. printf("A doua fractie: \n");
  57. f2=citesteFractie();
  58. r=aduna(f1,f2);
  59. afis(f1);
  60. printf("+");
  61. afis(f2);
  62. printf("=");
  63. afis(r);
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement