标题: cmd 计算能力很弱
[打印本页]
作者: 6622186
时间: 2007-3-10 01:35
标题: cmd 计算能力很弱
set /a 可用于计算, 但功能很弱, 不支持乘方, 比起其它高级语言来, 差多了.
作者: namejm
时间: 2007-3-10 01:42
CMD的计算能力确实比较弱:不
直接支持小数的加减乘除。但是,也并非像你所说的那样不中用。
乘方的代码如下(没有做容错检测,已修正11楼指出的错误):
@echo off
:main
cls
echo.&echo.
set x=
set n=
set /p x=请输入底数:
set /p n=请输入指数:
set /a n-=1,num=%x%
for /l %%i in (1,1,%n%) do (
set /a num*=%x%
)
echo.&echo.
set /a n+=1
if %n% equ 0 (
echo %x% 的 %n% 次方是 1
) else echo %x% 的 %n% 次方是 %num%
pause
goto main
更多的CMD运算,可以参考以下帖子:
1、
[共同参与][挑战思路][批处理处理浮点运算]
2、
批处理计算器
[
Last edited by namejm on 2007-3-9 at 07:46 PM ]
作者: jmz573515
时间: 2007-3-10 01:47
namejm的回答不错,6622186的签名有个性。好!
作者: qjbm
时间: 2007-3-10 02:00
感觉楼主的意思是想说"开方".
也确实是如楼主所说.........
批处理并不适合担当复杂计算任务,
同样思路模式的批处理计算程序,与其他语言相比计算速度与效率低的惊人!
也许根本不应该把批处理来当作一种计算机语言,来进行比较.
[
Last edited by qjbm on 2007-3-9 at 01:07 PM ]
作者: electronixtar
时间: 2007-3-10 02:16
Quote: |
Originally posted by 6622186 at 2007-3-10 01:35:
set /a 可用于计算, 但功能很弱, 不支持乘方, 比起其它高级语言来, 差多了. |
|
但是人的智慧不受这些局限。用C++完成的任务用bat来完成,那就是激动人心的挑战!
作者: xycoordinate
时间: 2007-3-10 02:26
@echo off
@set c= 不知则觉多,知则觉少,越知越多,便觉越来越少. --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul
签名是很NB!
请问:
第3行为什么用了那么多“,”???
我改成
@for /l %%i in (1,1,55) do @call set /p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul
也行?
谁能解释一下吗?
难道“,“可以替代” “???
[
Last edited by xycoordinate on 2007-3-9 at 01:30 PM ]
作者: kenshu
时间: 2007-3-10 02:29
看来就上好玩咯~呵呵 `
作者: electronixtar
时间: 2007-3-10 02:32
Quote: |
Originally posted by xycoordinate at 2007-3-10 02:26:
@echo off
@set c= 不知则觉多,知则觉少,越知越多,便觉越来越少. --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>n ... |
|
无奈何的……
作者: 6622186
时间: 2007-3-10 07:13
re 六楼, "," 可作分隔符, 其它字符也可以, 比如"=".
作者: 6622186
时间: 2007-3-10 07:19
二楼的代码可以, 谢谢!
作者: vkill
时间: 2007-3-10 08:01
请输入底数:5
请输入指数:0
5 的 0 次方是 5
请按任意键继续. . .
呵呵,jm 兄忘记弄这个的过滤了
作者: namejm
时间: 2007-3-10 08:46
确实是遗漏了这种情况,已经修正,多谢指出。