这里新的但我会尽量做到简短而且重点突出。我正在尝试创建一个程序,该程序具有用户输入3个值,程序随后进行并分别在ax ^ 2 + bx + c(判别式= D)中用作A,B和C,并为您提供“解决方案”它具有(如果D> 0则为2个解,如果D = 0则为“双”解,如果D <0,则显示没有实际解)。事实上,无论我多么努力,我都无法想出一种方法来计算过程后期的平方根(如果判别力是正的)。我试过而不是试图找到平方根来将判别式提高到1/2(即D ^(1/2))而没有结果,也许我做错了虽然
:positive
:squareroot
set /p M==%B%*%B%-4*%A%*%C%
set /a number=%M%, last=2, sqrt=number/last
:next
set /a last=(last+sqrt)/2, sqrt=number/last
if %sqrt% lss %last% goto next
set /a Q=(-%B%+%last%)/2*%A%
set /a R=(-%B%-%last%)/2*%A%
echo ----------------------------------------------------
echo The first solution is ~%Q%~ and the second is ~%R%~ !
echo ----------------------------------------------------
pause
goto start
在网上尝试和搜索之后,我发现上面的代码实际上以某种方式设法计算出数字的平方根,接近近似(即9的平方根= 3 BUT的平方根也= 3)。尽管如此,为了项目的目的,它符合我的需要。
而不是计算程序显示%B%*%B%-4*%A%*%C%
的数字(而不是变量,用户选择的值),然后关闭。
答案 0 :(得分:0)
您的第TENANT_APPS
行是无稽之谈。 set /p M==%B%*%B%-4*%A%*%C%
要求用户输入,因此您不想使用set /p
。变量设置为简单的/p
,而不是=
,我认为您希望变量保存公式,而不是结果。 ==
被变量%B%
的值替换,可能不是,你想要的。要逃避百分号,请将它们加倍,以便B
字面包含%M%
。
只是设置/ %B%*%B%-4*%A%*%C%
不起作用,因为你想要在这里评估变量,所以你需要另一层解析(你可以用number=%M%
来完成)。
call
(注意:我没有分析其余的代码,因为它似乎工作正常)