关于#c语言#的问题:C语言计算斜率输出最简分数输入四个整数x1

C语言计算斜率输出最简分数
输入四个整数x1,y1,x2,y2,分别为两点坐标。输出这两点确定的直线斜率用最简分数表示,不存在则输出-1


#include <stdio.h>
#include <stdlib.h>

int gcd(int a, int b) {
  // 计算最大公约数
  if (b == 0) {
    return a;
  }
  return gcd(b, a % b);
}

int main() {
  int x1, y1, x2, y2;
  scanf("%d%d%d%d", &x1, &y1, &x2, &y2);

  if (x1 == x2) {
    // 如果两点横坐标相同,斜率不存在
    printf("-1\n");
  } else {
    // 计算斜率
    int k = abs(y2 - y1);
    int n = abs(x2 - x1);
    int g = gcd(k, n);
    k /= g;
    n /= g;
    printf("%d/%d\n", k, n);
  }

  return 0;
}