C++方程这该怎么做?

描述
小明很喜欢方程,他想让你帮他解这个方程ax+by=c,其中x,y为未知数,a,b,c为已知数。小明希望你求出一组x,y满足x,y是方程的解,并且x需要尽量的小并且大于等于零。
输入
第一行三个整数a,b,c。
输出
输出一行两个整数分别表示满足条件的x,y。如果无解输出−1。
样例输入
2 3 1
样例输出
2 -1
提示
所有数据满足:1≤a,b,c≤109。


#include <stdio.h>

int main()
{
    int a, b, c;
    scanf("%d%d%d", &a, &b, &c);
    
    for (int x = 0; ; x++)
    {
        //x= (c-by)/a 且 x>=0, 即y <= b/c
        if (((c - a*x) / b) > (b / c))
        {
            printf("%d\n", -1);
            break;
        }
        int y = (c - a*x) / b;
        //小数转换整数存在丢失精度,要二次判断
        if ((a*x + b*y) == c)
        {
            printf("%d %d\n", x, y);
            break;
        }
    }
    return 0;
}