fork download
  1. #include <stdio.h>
  2.  
  3. void bunsa(int *, int *, int *, int * , int * , int * );
  4. void bunsyo(int *, int *, int *, int * , int * , int * );
  5. void yakubun(int *, int *);
  6.  
  7. int main()
  8. {
  9. int x1, x2, y1, y2, a1, a2, b1, b2;
  10.  
  11. printf("分数1の分子を入力してください:");
  12. scanf("%d", &x1);
  13. printf("分数1の分母を入力してください:");
  14. scanf("%d", &x2);
  15. printf("分数2の分子を入力してください:");
  16. scanf("%d", &y1);
  17. printf("分数2の分母を入力してください:");
  18. scanf("%d", &y2);
  19.  
  20. bunsa(&x1, &x2, &y1, &y2, &a1, &a2);
  21. yakubun(&a1, &a2);
  22.  
  23. bunsyo(&x1, &x2, &y1, &y2, &b1, &b2);
  24. yakubun(&b1, &b2);
  25.  
  26. printf(" %d / %d - %d / %d = %d / %d \n", x1, x2, y1, y2, a1, a2);
  27. printf(" %d / %d ÷ %d / %d = %d / %d \n", x1, x2, y1, y2, b1, b2);
  28. return 0;
  29. }
  30.  
  31. void bunsa( int *x1, int *x2, int *y1, int *y2, int *a1, int *a2)
  32. {
  33. *a1 = *x1 * *y2 - *x2 * *y1;
  34. *a2 = *x2 * *y2;
  35. }
  36.  
  37. void bunsyo( int *x1, int *x2, int *y1, int *y2, int *b1, int *b2)
  38. {
  39. *b1 = *x1 **y2;
  40. *b2 = *x2 **y1;
  41. }
  42.  
  43. void yakubun( int *n1, int *n2)
  44. {
  45. int w1 = *n1;
  46. int w2 = *n2;
  47. int t;
  48.  
  49. if (w1 < 0)w1 *= -1;
  50. if (w2 < 0)w2 *= -1;
  51. while (w1 * w2)
  52. {
  53. w1 %= w2;
  54. t = w1; w1 = w2; w2 = t;
  55. }
  56. *n1 /= w1;
  57. *n2 /= w1;
  58. }
  59.  
Success #stdin #stdout 0.02s 1680KB
stdin
1
2
3
4
stdout
分数1の分子を入力してください:分数1の分母を入力してください:分数2の分子を入力してください:分数2の分母を入力してください: 1 / 2 - 3 / 4 = -1 / 4 
 1 / 2 ÷ 3 / 4 = 2 / 3