计算循环结果的平均值为10

时间:2017-04-02 21:21:29

标签: windows batch-file cmd

所以我创建了一个for循环,计算(x mod 6)+ 2对于1-10(包括)的每个数字," x"将每个单独的数字表示为循环增量。但是,我想计算10个结果中每个结果的平均值,但实际上我并不知道如何设置循环来这样做。我宁愿不做像echo "1 + 2 + 3 + etc"这样的事情,因为这似乎非常懒惰和构造不良。我觉得这是相对容易的事情,但我已经尝试过搜索它并尝试另一个循环,但无济于事。任何和所有的帮助非常感谢!

这是循环:

:ForLoop
@echo off &setlocal enabledelayedexpansion

echo This loop calculates the results for (x mod 6) + 2 with x being each number from1-10 (inclusive).
echo.
for /L %%x in (1, 1, 10) do (
    SET /a VAR=%%x %% 6+2
    set /a CAL=!VAR! %% 8
    echo %%x MOD 6 + 2 = !CAL!
)

1 个答案:

答案 0 :(得分:0)

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION 
:ForLoop

echo This loop calculates the results for (x mod 6) + 2 with x being each number from1-10 (inclusive).
echo.
SET /a iterations=10
SET /a sum=0
for /L %%x in (1, 1, %iterations%) do (
    SET /a VAR=%%x %% 6+2
    SET /a sum+=var
    SET /a avg=sum / %%x
    echo %%x MOD 6 + 2 = !var! average so far=!avg! (from !sum! / %%x^)
)

GOTO :EOF

没有必要进行%% 8爵士乐 - 因为var只能是(0..5)+2,这会给出范围为2..7。

set /a使用变量的运行时值,因此不需要!var! - %var%将使用var初始值}。

请注意,当批处理执行整数数学时,平均值会被截断。