学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");
}
如图,第一次循环的最后输入了0,但没能使得程序结束循环
虽然知道可以用其他方法代替,但是这个问题真的折磨我,望解答