Board logo

标题: [数值计算] [已解决]批处理如何进行加减运算 [打印本页]

作者: jialin2008    时间: 2010-6-29 23:55     标题: [已解决]批处理如何进行加减运算

比如我在p中输入53212 我想让他计算出 第一位加第三位加第五位然后在减第2位和第四位
就是这样的:5+2+2-3-1  结果出来等于5  !

[ 本帖最后由 jialin2008 于 2010-6-30 00:21 编辑 ]
作者: hyqiujian    时间: 2010-6-30 00:14

@echo off
set a=53212
set /a b=%a:~,1%+%a:~2,1%+%a:~4,1%-%a:~1,1%-%a:~3,1%
echo %a%
echo 第一位+第三位+第五位-第二位-第四位
echo 得到结果是  %b%
pause
作者: hyqiujian    时间: 2010-6-30 00:16

@echo off
set a=
set /p a=请输入一个5位的数字:
set /a b=%a:~,1%+%a:~2,1%+%a:~4,1%-%a:~1,1%-%a:~3,1%
echo 输入的数字  %a%
echo 第一位+第三位+第五位-第二位-第四位
echo 得到结果是  %b%
pause
bat-hyqiujian<hyqiujian@1
作者: sgaizxt001    时间: 2010-6-30 00:16

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p var=请输入:
  4. for %%a in (!var!) do (
  5.    set /a n+=1
  6.    set _!n!=%%a
  7. )
  8. set /a m=!_1!+!_3!+!_5!-!_2!-!_4!
  9. echo !m!
  10. pause
复制代码

每个数之间用空格隔开
理解错题意,上面的代码就OK了。我这个是输入5个数而不是一个5位数

[ 本帖最后由 sgaizxt001 于 2010-6-30 00:18 编辑 ]
作者: hyqiujian    时间: 2010-6-30 00:23

4楼的代码

"提示找不到操作数"
作者: hyqiujian    时间: 2010-6-30 00:24

请4楼解析下原理
我不是很懂FOR
作者: sgaizxt001    时间: 2010-6-30 02:00

首先我理解错了楼主的意思,我的代码是分析5个数,而不是1个5位数。
输入5个数,以空格隔开的5个数,比如19 28 36 45 53。
for %%a in (!var!)是以19 28 36 45 53为解析对象,设置用%%a分别取19,28,36,45,53。然后每有一个变量就设置n=n+1,总共5个变量,那么n的取值是1,2,3,4,5。继续设置_1=19,_2=28,_3=36,_4=45,_5=53。最后就是计算了
作者: shuaige100    时间: 2010-6-30 16:48     标题: 回复 4楼 的帖子

1位数的5个数,计算不了的
我输入的是1 2 3 4 5
答案是错误的3
作者: sgaizxt001    时间: 2010-6-30 21:32

1+3+5-2-4不等于3?




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2