所以我创建了一个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!
)
答案 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
的初始值}。
请注意,当批处理执行整数数学时,平均值会被截断。