返回列表 发帖
本帖最后由 qc5111 于 2011-8-29 00:58 编辑
@echo off
cls
set /p a=请输入第一位数
set /p b=请输入第二位数
set /a c=%a%+%b%
echo %c%
pauseCOPY

TOP

回复 15# vicp7764


    请问“SUM”在SET中和其它的任何可设的变量一样吗?
不明白这段是怎么求出数值之间的和的
@echo off
for /l %%i in (100,-2,0) do set /a sum+=%%i
echo %sum%
pauseCOPY

TOP

1
@echo off
set /p val=请输入值:
echo %val%
pause>nulCOPY
2.
@echo off
set /p m=请输入值1
set /p n=请输入值2
set /a val=%m%+%n%
echo %val%
pause>nulCOPY

TOP

请问是否要像13楼说的一样,先检查时候输入的是数字,不是的话给出提示?
另外就是 批处理里面有数据类型这个概念吗?

TOP

回复 189# daiyang622


没有数据类型
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

@echo off
set /p num1=num1
set /p num2=num2
set /a sum=%num1%+%num2%
echo sum=%sum%
pause>nulCOPY

TOP

1.
@echo off
title 输入显示
set /p a=please input:
echo 你输入的是 %a%
pause>nul
2.
@echo off
title 输入两数求和
set /p a=please input first num: && set /p b=please input second num:
echo 你输入的是 %a%%b%
set /a c=%a%+%b%
echo 他们的和是%c%
pause>nulCOPY

TOP

1,设置等待用户输入,并将输入结果显示在批处理窗口
@echo off
set /p var=请输入
echo 输入数据如下:
echo::************
echo %var%
pause>nulCOPY
2,将用户输入的第一数字和第二个数字之和显示在批处理窗口
@echo off
set /p a=请输入数字
set /p b=请输入数字
set /a c=a+b
echo %c%
pause>nulCOPY
我想在第二题中加入可以判断输入的是否数字,如果是非数字则提示重新输入,现在还不知道怎么来实现。
如果有高手可以指点,先表示感谢。

TOP

@echo off
set /p str=请输入要输入的2位数字,将计算第一位与第二位的和:
echo 你输入的数字:%str%
echo 第一位数字:%str:~0,1%
echo 第二位数字:%str:~1,1%
set /a c=%str:~0,1%+%str:~1,1%
echo 和:%str:~0,1%+%str:~1,1%=%c%
pause>nulCOPY
宝贵的光阴,总是像箭一样地飞逝着。

TOP

@echo off
set /p a=请输入三位数字:
echo %a%COPY
@echo off
set /p a=请输入a的值:
set/p b=请输入b的值:
set /a c=%a%+%b%
echo %c%COPY

TOP

本帖最后由 几维kiwi 于 2012-2-25 17:56 编辑

写了一个较完整的版本,写的不好的地方,请大家指出一下,多谢!
::设置等待用户输入,并将输入结果显示在批处理窗口;
::将用户输入的第一数字和第二个数字之和显示在批处理窗口;
@echo off
echo .........Summary Program..........
rem 用户输入两个数字
:begin
echo.
set num1=
set num2=
set /p num1=^> please input number1:
set /p num2=^> please input number2:
rem 检查输入的字符是否为数字
set numFlag=true
call :checkNumber %num1%
if "%result%" == "false" echo error:number1 is not a number&(set numFlag=false)
call :checkNumber %num2%
if "%result%" == "false" echo error:number2 is not a number&(set numFlag=false)
if "%numFlag%" == "false" goto :begin
rem 如果输入的都是数字,则对数字相加,并输出结果
set /a sum=num1+num2
echo ==========RESULT============
echo num1=%num1%
echo num2=%num2%
echo num1+num2=%sum%
echo ============================
rem 是否重来?
echo.
set /p redo=try again? (y or n)
if /i "%redo%"=="y" goto :begin
echo enter any key to exit ...
pause>nul
goto :eof
rem 定义函数:判断是否为数字
rem 判断方法:通过判断字符串是否被数字分割来判断是否包含数字
:checkNumber
set n=%1
if not "%n%"=="" (
for /f "delims=1234567890" %%a in ("%n%@") do if "%%a"=="@" (set result=true) else (set result=false)
) else (
set result=false
)
goto :eofCOPY

TOP

楼上的写的不错啊,就是没判断空格啊,有空格就错了,学习
建议版主写个完整版点评下,能判断是不是输入数字的

TOP

@echo off
title abc
:0
set /p hh=请输入两位数
echo %hh%|findstr "^[0-9][0-9]">tmp.tmp
for /f %%i in (tmp.tmp) do ( if %%i == %hh% echo 格式正确
&goto 1)
echo 输入格式错误
pause
del /q tmp.tmp
goto 0
:1
echo %hh%
set ss1=%hh:~0,1%
set ss2=%hh:~1,1%
set /a ss=ss1+ss2
echo %ss%
goto 0
pause>nulCOPY

TOP

回复 197# 几维kiwi


    第44行 %%a in ("%n%@") do if "%%a"=="@"为什么括号有个@?  为什么%%a==@?

TOP

我来交第一题作业:
@echo off
set /p input=Please input any number:
echo What you inputed is:%input%
set b1=%input:~0,1%
set b2=%input:~1,1%
set /a sum=b1+b2
echo the sum of byte1 and byte2 is:%sum%&pause>nulCOPY

TOP

返回列表