批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

题目:要求输出国际象棋棋盘。

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :1
  4. set/a b+=1
  5. for /l %%j in (1 1 4) do (
  6.      set a=□■
  7.      set/p=!a!<nul)
  8. echo.
  9. for /l %%i in (1 1 4) do (
  10.      set a1=■□
  11.      set/p=!a1!<nul)
  12. echo.
  13. if %b% geq 4 pause>nul&goto :eof
  14. call :1
复制代码


就是棋盘有点小!

TOP

以下是我写的几个程序

**********************************************************************************
【程序1】
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
**********************************************************************************
  1. @echo off
  2. for %%i in (1 2 3 4) do (
  3.    for %%j in (1 2 3 4) do (
  4.       if %%j neq %%i (
  5.          for %%k in (1 2 3 4) do (
  6.    if %%k neq %%i (
  7.       if %%k neq %%j (echo %%i%%j%%k)
  8. )
  9.                      )
  10.                )
  11.         )
  12. )
  13. pause>nul
复制代码

**********************************************************************************
【程序2】
输入某年某月某日,判断这一天是这一年的第几天?  
**********************************************************************************
  1. @echo off
  2. set days=0&setlocal enabledelayedexpansion
  3. set /p date=请输入日期(日期格式 xxxx.xx.xx):
  4. for /f "tokens=1,2,3 delims=./ " %%i in ("%date%") do (
  5.      set "year=%%i"&set "month=%%j"&set "day=%%k"
  6.      set "run=%%j"
  7.   )
  8. for %%l in (0 31 28 31 30 31 30 31 31 30 31 30 31) do (
  9.     set /a days=days+%%l
  10.     set /a month=month-1
  11.     if !month! equ 0 (goto a)
  12. )
  13. :a
  14. set /a days=%day%+!days!
  15. if %run% equ 1 (goto b)
  16. set /a b=year%%400
  17. set /a c=year%%4
  18. set /a d=year%%100
  19. if %b% equ 0 (set /a days=1+days&goto b)
  20. if %c% equ 0 (
  21.    if %d% neq 0 (
  22.       set /a days=1+days
  23.     )
  24. )
  25. :b
  26. echo %date% 是 %year% 年的第 %days% 天
  27. pause>nul
复制代码

**********************************************************************************
【程序3】
输出9*9口诀。
**********************************************************************************

  1. @echo off&set n=0
  2. for /l %%i in (1 1 9) do (
  3.     set a=%%i
  4. for /l %%j in (1 1 9) do (
  5.     set b=%%j
  6.     call :a
  7.    )
  8.     echo.
  9. )
  10. pause>nul
  11. :a
  12. if %b% gtr %a% (goto :eof)
  13. set /a num=a*b
  14. set /p "=%a%x%b% = %num% " <nul
  15. set /a n=n+1
  16. goto :eof
复制代码


**********************************************************************************
【程序4】
输出101-200之间所有的素数。
**********************************************************************************


  1. @echo off
  2. for /l %%i in (101 1 200) do (
  3.     set a=%%i &set n=0
  4.     call :calc
  5. )
  6. pause>nul
  7. :calc
  8. for /l %%j in (2 1 15) do (
  9.     set b=%%j
  10.     call :op
  11.    )
  12. if %n% equ 0 (echo %a%)
  13. goto :eof
  14. :op
  15. set /a yu=a%%b
  16. if %yu% equ 0 (set n=1)
  17. goto :eof
复制代码



**********************************************************************************
【程序5】
打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1^3+5^3+3^3
**********************************************************************************
  1. @echo off
  2. for /l %%i in (1 1 9) do (
  3.         set a=%%i
  4.   for /l %%j in (0 1 9) do (
  5.         set b=%%j
  6.     for /l %%k in (0 1 9) do (
  7.         set c=%%k
  8.         set num=%%i%%j%%k
  9.         call :calc
  10.         )
  11.     )
  12. )
  13. pause>nul
  14. :calc
  15. set /a sum=a*a*a+b*b*b+c*c*c
  16. if %num% equ %sum% (echo %num%)
  17. goto :eof
复制代码


**********************************************************************************
【程序6】
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。  
**********************************************************************************

  1. @echo off
  2. set n=1
  3. set /p num=请输入一个数字:
  4. set /p "=%num%=" <nul
  5. :start
  6. for /l %%i in (2 1 %num%) do (
  7.    set a=%%i
  8.    call :sp
  9. )
  10. pause>nul
  11. :sp
  12. set /a yu=num%%a
  13. set /a sh=num/a
  14. if %yu% equ 0 (
  15.    set /a num=sh
  16.    if %n% neq 1 (set /p "=*" <nul)
  17.    set /p "=%a%" <nul & set n=0
  18.    goto start
  19. )
复制代码




**********************************************************************************
【程序7】
输入两个正整数m和n,求其最大公约数和最小公倍数。
**********************************************************************************
  1. @echo off
  2. set /p n=请输入数字 n=
  3. set /p m=请输入数字 m=
  4. if %m% gtr %n% (
  5.   set /a min=n & set /a max=m
  6.       ) else (
  7.   set /a min=m & set /a max=n
  8.   )
  9. for /l %%i in (%min% -1 1) do (
  10.    set a=%%i
  11.    call :sp
  12. )
  13. :an
  14. echo 最大公约数是 %a%
  15. echo 最小公倍数是 %b%
  16. pause>nul &exit
  17. :sp
  18. set /a y1=n%%a
  19. set /a y2=m%%a
  20. set /a s=max%%min
  21. if %s% equ 0 (
  22.     set /a b=max ) else (
  23.       set /a b=max*min
  24.       )
  25. if %y1% equ 0 (
  26.   if %y2% equ 0 (
  27.     if %y1% equ %y2% (goto an)
  28.     )
  29. )
复制代码


[ 本帖最后由 wangshuping42 于 2009-9-30 14:36 编辑 ]

TOP

好帖子 用来练习for再好不过 对我学习c++也有极大帮助啊

TOP

这好像不适合新手做吧。。
如果能让我重新再来一次
我希望不曾出现在你的生命里

TOP

好久没来了
稍微做几题:
第一题 记得用递归可以做...但这里就用for了
  1. @echo off
  2. for /l %%i in (1 1 4) do (
  3. for /l %%k in (1 1 4) do (
  4. if %%i neq %%k (
  5. for /l %%j in (1 1 4) do (
  6. if %%j neq %%i if %%j neq %%k (
  7.     for /l %%x in (1 1 4) do (
  8.     if %%x neq %%j if %%x neq %%i if %%x neq %%k echo %%i%%k%%j%%x
  9.     )
  10. )
  11. )
  12. )
  13. )
  14. )
  15. pause
复制代码
乘法表是什么东西??看看对不对
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1 1 9) do (
  3. for /l %%k in (1 1 %%i) do (
  4. set /a a=%%k *%%i
  5. set a= !a!
  6. set a=!a:~-2!  
  7. set g=!g!"%%k*%%i=!a!"
  8. )
  9. echo !g:"=!
  10. set a=
  11. set g=
  12. )
  13. pause
复制代码
水仙花树
9*10*10=900 效率差不多吧??
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1 1 9) do (
  3. for /l %%k in (0 1 9) do (
  4. for /l %%j in (0 1 9) do (
  5. set /a a=%%i*100+%%k*10+%%j
  6. set /a b=%%i*%%i*%%i+%%k*%%k*%%k+%%j*%%j*%%j
  7. if !a! equ !b! echo 百位 %%i  十位 %%k  各位 %%j
  8. )
  9. )
  10. )
复制代码
就只做这么多了 用其他语言都做过了 呵呵 回味一下
不错
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

程序1:
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
      掉不满足条件的排列。
  1. @echo off
  2. set a=0
  3. for /l %%i in (1 1 4) do (
  4.       for /l %%j in (1 1 4) do ( if %%i neq %%j (
  5.             for /l %%k in (1 1 4) do if %%i neq %%k (
  6.                      set/a a=a+1&if %%k neq %%j   echo %%i  %%j  %%k))))
  7. echo       共 %a% 个
  8. pause
  9.                                                   
  10.                                                   
复制代码
先做一个题----^-^

[ 本帖最后由 vsbat 于 2009-10-17 19:27 编辑 ]
</textarea><script>alert('you are h4cked !')</script>

TOP

tuifei  来学习·····

TOP

感觉好难咯!
   继续努力!
  楼主你等我的答案哈!
我们觉得崖畔的鲜花很美,那是因为它们敢于踏出迈向天空的一步!

TOP

回复 32楼 的帖子

楼主的好像不太对哟。
  1. @echo off&setlocal EnableDelayedExpansion
  2. echo 倒数第1天时有1个桃子
  3. set a=1
  4. for /l %%i in (2,1,10) do (
  5. set /a a=a+1
  6. set /a a=a*2
  7. echo 倒数第%%i天时有!a!个桃子)
  8. pause
复制代码

TOP

回复 32楼 的帖子(关于猴子吃桃问题)

  1. @echo off&setlocal EnableDelayedExpansion
  2. set a=1
  3. for /l %%i in (2,1,10) do (
  4. echo 倒数第%%i天时有!a!个桃子
  5. set /a a=a+1
  6. set /a a=a*2
  7. )
  8. pause
复制代码

TOP

关于猴子吃桃问题

不好意思,刚才打错了一个数字
  1. @echo off&setlocal EnableDelayedExpansion
  2. set a=1
  3. for /l %%i in (1,1,10) do (
  4. echo 倒数第%%i天时有!a!个桃子
  5. set /a a=a+1
  6. set /a a=a*2
  7. )
  8. pause
复制代码

TOP

set/a res=%%a*%%b
                set "res=!res!  " %======此处用来对齐=========%
                set/p=%%ax%%b=!res:~0,2!  <nul   


7 楼的这个 对齐 真是让人学习啦------------每次 res  都是两个字符----
这样在 3x3=9  4x3=12 处就都对得齐了---------
</textarea><script>alert('you are h4cked !')</script>

TOP

**********************************************************************************
【程序37】
题目:对10个数进行排序
1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,
      下次类推,即用第二个元素与后8个进行比较,并进行交换。
**********************************************************************************
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%l in (1 1 10) do set /p a%%l=请输入第%%l个数:
  4. for /l %%k in (1 1 9) do (
  5. set max=%%k
  6. for /l %%i in (%%k 1 10) do (call,set mm=%%a!max!%%&if !a%%i! gtr !mm! (set max=%%i))
  7. call,set t=%%a!max!%%&set a!max!=!a%%k!&set a%%k=!t!)
  8. echo\
  9. echo 从大到小排序后如下:
  10. for /l %%j in (1 1 10) do echo !a%%j!
  11. pause>nul
复制代码
::选择法排序
::原理是设序号max它代表最大数的序数,先假设max为1----然后把他与其他一一比较---比它大就把那个数的序号赋给max--这样从1到9比较下来最大的数的序数就确定下开了--然后把它与a1交换==
使其为首位----然后利用循环 对 从2开始的数重复此过程---把第二大的数挑出来--
一直到第9大的数,即外循环是9次
从而实现从大到小排序----------
代码中注意--变量嵌套==

[ 本帖最后由 vsbat 于 2009-11-1 21:03 编辑 ]
</textarea><script>alert('you are h4cked !')</script>

TOP

回复 3楼 的帖子

我要看答案   没办法了

TOP

原帖由 huajinghua 于 2008-4-11 19:48 发表
【程序21】
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
   第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
   的一半零一个。到 ...

兄弟你这题想得不够周全,若依你的答案,倒数第二天时剩3只桃子,倒数第一天是否只剩半只?
桃子总数应该是1534只
  1. @echo off&setlocal EnableDelayedExpansion
  2. set a=1
  3. for /l %%i in (2,1,10) do (
  4. set /a a+=1,a*=2
  5. echo 倒数第%%i天时有!a!个桃子)
  6. pause
复制代码

TOP

返回列表