Board logo

标题: [数值计算] [已解决]批处理怎样求数组对应数值的差并同一行依次输出? [打印本页]

作者: oyow    时间: 2011-4-25 17:03     标题: [已解决]批处理怎样求数组对应数值的差并同一行依次输出?

本帖最后由 oyow 于 2011-4-25 20:23 编辑

a.txt里有若干个数组,每组一行,用下面的数组的数减去上面的数组相同一列的数,并在下面数组的同一行隔开依次输出每次的差,例如:
a.txt里的数组:
08 75 23 86 77
03 45 68 96 33   
09 65 25 05 99

处理后的结果
08 75 23 86 77
03 45 68 96 33    -05  -30  45  10  -44
09 65 25 05 99     06  20  -43  -91  66
就是这样的意思,向各位达人求解,谢谢
作者: CrLf    时间: 2011-4-25 18:45

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3. for %%b in (%%a) do (
  4. for /f "tokens=1*" %%c in ("!last!") do (
  5. set /a c=1%%b-1%%c,c=c*101
  6. if !c! lss 0 (set cha=!cha!  -!c:~-2!) else set cha=!cha!   !c:~-2!
  7. set last=%%d
  8. )
  9. )
  10. if defined cha echo !cha!
  11. set cha=
  12. set last=%%a
  13. )
  14. pause
复制代码

作者: oyow    时间: 2011-4-25 19:43

非常感谢,显示出来了,但是我想把结果添加到文本中要像这样
08 75 23 86 77
03 45 68 96 33    -05  -30  45  10  -44
09 65 25 05 99     06  20  -43  -91  66
作者: Batcher    时间: 2011-4-25 19:56

3# oyow
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%a in (a.txt) do (
  4.     for %%b in (%%a) do (
  5.         for /f "tokens=1*" %%c in ("!last!") do (
  6.             set /a c=1%%b-1%%c,c=c*101
  7.             if !c! lss 0 (
  8.                 set cha=!cha!  -!c:~-2!
  9.             ) else (
  10.                 set cha=!cha!   !c:~-2!
  11.             )
  12.             set last=%%d
  13.         )
  14.     )
  15.     echo %%a !cha!
  16.     set cha=
  17.     set last=%%a
  18. ))>b.txt
复制代码

作者: oyow    时间: 2011-4-25 20:22

谢谢,楼上问题解决了,强大
作者: oyow    时间: 2011-4-25 20:30

本帖最后由 oyow 于 2011-4-25 20:33 编辑

oooooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooo
ooOKOKOKOKOKooOKOKOKOKOKOKOKOKoo
ooooooooOKooooooooooOKoooooooooo
ooooooooOKooooOKOKOKOKOKOKOKoooo
ooooooooOKooooOKooooooooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooOKooOKooooooooOKooooOKoooooo
ooooooOKooooooooOKooooooooOKOKoo
ooooooooooooOKOKooooooooooooOKoo
oooooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooo




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