这个程序哪里逻辑出错了

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
#include <iostream>
using namespace std;

int main() {
    int a, b, c;
    cout << "请输入a小猪的体重:" << endl;
    cin >> a;
    cout << "请输入小猪b的体重:" << endl;
    cin >> b;
    cout << "请输入小猪c的体重:" << endl;
    cin >> c;

    if (a > b && a > c) {
        cout << "a小猪最重" << endl;
    } else if (b > a && b > c) {
        cout << "b小猪最重" << endl;
    } else if (c > a && c > b) {
        cout << "c小猪最重" << endl;
    } else if (a = b > c) {
        cout << "ab小猪一样重" << endl;
    } else if (a = c > b) {
        cout << "ac小猪一样重" << endl;
    } else if (b = c > a) {
        cout << "cb小猪一样重" << endl;
    } else if (a = b && a, b = c) {
        cout << "一样重" << endl;
    }


    system("pause");
    return 0;
}


运行结果及报错内容 当输入a=b=c时报cb小猪一样重
我的解答思路和尝试过的方法
我想要达到的结果

少考虑了一些情况,有两个数相等,另一个数就一定最小吗?