为什么根函数在我的代码不工作?

  • 本文关键字:代码 工作 函数 c++ math
  • 更新时间 :
  • 英文 :


所以,我最近进入编程,并决定做一个功能齐全的计算器,但每次我运行我的代码,并尝试做根操作,我只是添加它只是循环我的整个脚本,直到停止。这是我的根函数和switch语句,它用于:

void Root(float x, float y)
{
float z;
float w;
float q = x - 1;
float guess = 1;
z = y / guess;
w = guess * q + z;
z = w / x;
for (int i = 0; i < 50; i++)
{
for (int i = 0; i < q; i++)
{
guess = guess * z;
}
w = y / guess;
z = w * q + z;
w = z / x;
}

cout << w;
}
while (YesOrNo == 'y' && 'Y')
{
float x, y;
char op;
cout << "Write the first number, the operator then the second number: ";
cin >> x >> op >> y;
switch (op)
{
case '+':
Addition(x, y);
break;
case '-':
Substraction(x, y);
break;
case '*':
case 'x':
Multiplication(x, y);
break;
case '/':
Division(x, y);
break;
case '^':
Power(x, y);
break;
case 'rt':
Root(x, y);
break;
default:
cout << "INVALID_OPERATORn";
break;
}
float x, y;
char op;
cout << "Write the first number, the operator then the second number: ";
cin >> x >> op >> y;

这段代码只能接受一个数字后面跟着一个字符后面跟着另一个数字。任何地方都没有代码来处理任何其他输入。自"rt"不是单个字符,没有办法调用根函数。如果你输入了它不期望的字符,并且输入了两个它不期望的字符,代码就会中断。

如果输入,请输入"37rt5"将被读作第一个数字,"r"作为单个字符,然后加上"t"将被读取为第二个数字。当然,没有数字以"&;t&;"开头,所以这将失败。

您的代码一遍又一遍地重复失败的操作。所以它会一次又一次地失败。没有任何代码来处理一行中的两个字符,因此代码将继续不处理它们。

相关内容

最新更新