我必须在bash和batch中做一些事情。我坚持批处理循环部分。部分工作的说明如下:
::Doing a for loop from 1 to 100,
:: - Find the results of calculating each number from 1 to 100 mod 5.
:: - Append each number to the results.txt file
:: - After the for loop ends calculate and display the average of the results
:: - Append the average of the numbers to the results.txt file
::Code
:forLoop
echo.
::set /A temp-0
for /L %%x in (1, 1, 100) do (
set /A result="%%x %% 5"
call echo %%result%% >> results.txt
::%%temp+=%%result%%
)
::average=temp/100
::append average
GOTO exit
其他用户帮我提供了结果变量和mod 5.但是,我目前遇到了temp的问题。我想一旦我开始工作,我应该能够让平均部分工作没有太多问题。我的教授还提到批量中有3种不同类型的for循环,所以我甚至不确定我是否使用了正确的循环。任何人都可以帮我解决这个问题。
答案 0 :(得分:0)
echo.
set /A temp=0
for /L %%x in (1, 1, 100) do (
set /A result="%%x %% 5"
call echo %%result%%
CALL SET /a temp+=%%result%%
)
SET /a average=temp/100
ECHO %average% %temp%
这很直截了当。 不要在一个块(带括号的系列语句)中使用::
注释样式,因为它实际上是一个破坏循环的破坏标签。
除此之外,您需要call
set
,因为您没有使用delayedexpansion
- 因此要求将%
的习惯数量翻倍 - 与call echo
相同{1}}。
我已取出重定向,以便结果只显示在屏幕上。