除以整数以获得其所有数字并将它们相加

  • 本文关键字:数字 整数 batch-file
  • 更新时间 :
  • 英文 :


我正在尝试编码一个脚本,该脚本将使用一个用户输入的整数,然后总结所有数字。整数必须在1-99

之间

示例:

如果用户输入27

输出:9

这是代码:

@ECHO OFF
SET /p number="Enter a number: "
SET sum=0
IF %number% GTR 9 (
SET /a temp=%number% %% 10
SET /a sum+=%temp%
SET /a number/=10
SET /a sum+=%number%
) ELSE (
SET /a sum+=%number%
)
echo %sum%

因此,例如,输入的数字为19,首先要进行19%10来获得" 9"。然后是19/10获得1,将它们概括为10.

如果数字仅限于范围1-99,则计算为直接

set /a "sum=%number% / 10 + %number% %% 10"

%number% / 10如果有的话,将返回左数,如果%number%小于10

%number% %% 10将返回正确的数字

只要总和

在块语句(a parenthesised series of statements)中,整个 block被解析,然后执行。块中的任何%var%都将被该变量的值替换。

因此,分配给temp的值未按照您的预期进行评估。

您应该查找有关delayed expansion的许多文章,并了解batch substrings。这将使您的任务更容易。

并且不要使用 temp作为用户变量,但是看起来合乎逻辑。temp是一个目录指针,它告诉系统可以存储临时文件的位置。更改它不是一个好主意。

@echo off &setlocal disableDelayedExpansion
SET /p "var=Enter var (1-99) "
set /a var=%var:~0,1%+%var:~1,1% 2>nul
echo %var%

相关内容

  • 没有找到相关文章

最新更新