Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off & setlocal enableDelayedExpansion
- call :macros
- %calculateAverage% 42 23 12 5 49
- call :calculateAverage 32 73 62 25 19
- pause & exit
- REM :calculateAverage FUNCTION
- :calculateAverage
- if %5 gtr 0 ( set "div=5"
- ) else if %4 gtr 0 ( set "div=4"
- ) else if %3 gtr 0 ( set "div=3"
- ) else if %2 gtr 0 ( set "div=2"
- ) else if %1 gtr 0 set "div=1"
- set /a "sum=%1 + %2 + %3 + %4 + %5", "avg=sum / div"
- echo The average is !avg!
- goto :eof
- :macros
- set ^"LF=^
- ^" Above empty line is required - do not remove
- set ^"\n=^^^%LF%%LF%^%LF%%LF%^^"
- REM %calculateAverage% function MACRO
- set calculateAverage=for %%# in (1 2) do if %%#==2 ( for /f "tokens=1-5" %%1 in ("^!args^!") do (%\n%
- if %%5 gtr 0 ( set "div=5"%\n%
- ) else if %%4 gtr 0 ( set "div=4"%\n%
- ) else if %%3 gtr 0 ( set "div=3"%\n%
- ) else if %%2 gtr 0 ( set "div=2"%\n%
- ) else if %%1 gtr 0 set "div=1"%\n%
- set /a "sum=%%1 + %%2 + %%3 + %%4 + %%5"%\n%
- for /f "tokens=1,2" %%a in ("^!sum^! ^!div^!") do (%\n%
- set /a "avg=%%a / %%b"%\n%
- for /f %%0 in ("^!avg^!") do echo The average is %%0%\n%
- )%\n%
- )) else set args=
- goto :eof
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement