[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] [已解决]批处理如何进行加减运算

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

[ 本帖最后由 jialin2008 于 2010-6-30 00:21 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

@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

TOP

@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
1

评分人数

    • jialin2008: 感谢主动给标题标注[已解决]字样PB + 3

TOP

  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 编辑 ]
1

评分人数

    • jialin2008: 感谢主动给标题标注[已解决]字样PB + 2
努力学习,努力挣分

TOP

4楼的代码

"提示找不到操作数"

TOP

请4楼解析下原理
我不是很懂FOR

TOP

首先我理解错了楼主的意思,我的代码是分析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。最后就是计算了
努力学习,努力挣分

TOP

回复 4楼 的帖子

1位数的5个数,计算不了的
我输入的是1 2 3 4 5
答案是错误的3

TOP

1+3+5-2-4不等于3?
努力学习,努力挣分

TOP

返回列表