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