C++使用while语句出现了问题,是想利用while实现“输入1重新开始,输入0结束”

学C++才几天,当时主要是为了方便做数学题,所以写了一段求卡方的代码
一开始没想到用while,后来学到while语句后学以致用,想在不退出程序的情况下进行多次计算,但是出现了问题
同题,代码运行和运算结果没有问题
就是没法实现“输入1重新开始,输入0结束”,而且无论输入什么,都是重新开始循环

#include<iostream>
using namespace std;
int main()
{
    bool num = 1;
    while (num = 1)
    {
        cout << "输入a,b,c,d的值" << endl;
        float a, b, c, d;
        cin >> a >> b >> c >> d;                            //从标准输入流中给a,b,c,d赋值
        float n = a + b + c + d;                            //算n
        float x = a * d - b * c;
        //接下来开始计算(a+b)*(c+d)*(a+c)*(b+d)的值
        float y = a + b, z = a + c;                            //1 令z=a+c
        y = y * z;                                            //2 求得(a+b)*(a+c)
        z = c + d;                                            //3 令z=c+d
        y = y * z;                                            //4 求得(a+b)*(a+c)*(c+d)
        z = b + d;                                            //5 令z=b+d
        y = y * z;                                            //6 1-6步获得(a+b)*(c+d)*(a+c)*(b+d)的值
        //代入公式
        cout << "总数的值为 " << n << endl;
        cout << "交叉相乘的差的平方为 " << x * x << endl;
        cout << "四组和的积为 " << y << endl;
        cout << "卡方的值为 " << n * x * x / y << endl;
        cout << "输入1重新开始,输入0结束:";
        cin >> num;
        cout << endl;
    }
    return 0;
    system("pause");
}

img

如图,第一次循环的最后输入了0,但没能使得程序结束循环
虽然知道可以用其他方法代替,但是这个问题真的折磨我,望解答

你while循环的条件写错了哦,要判断num是否为1需要用==号,即num==1
num=1表达式的值恒等于1,这样会是一个死循环哦