排序 问题
来源:互联网 发布:sql语言查库存 编辑:程序博客网 时间:2024/05/16 09:17
今天在csdn论坛中,看到几个题目。分析并解答。
FoxPro数据库编程题 如下:
1、通过键盘输入20个数。(1)求其中最大者和最小者,并显示之;
(2)将这20个数依从大到小排序,并显示排序结果。
原贴见:http://topic.csdn.net/u/20080116/20/1a6830dc-0657-4dcb-8d86-3f6155b3f7fe.html
本人解答如下:
SET TALK OFF
CLEA ALL
CLEA
k=20 &&表示需要处理的数据个数
DIME N(k)
*输入k个数,并赋值给数组n
FOR i=1 TO k
INPUT "请输入第 "+STR(i,2)+" 个数: " TO N(i)
ENDFOR
*找出最大值和最小值
tmax=N(1)
tmin=N(1)
FOR i=2 TO k
tmax=MAX(tmax,N(i))
tmin=MIN(tmin,N(i))
* 也可用比较运算符,按以下运算
IF tmax<N(i)
tmax=N(i)
ENDIF
IF tmin>N(i)
tmin=N(i)
ENDIF
ENDFOR
? "最大的数是:",tmax
? "最小的数是:",tmin
*从大到小排列
DIME nn(k) &&用另一个数组来保存排序后的结果
FOR i=1 TO k
nn(i)=N(i)
ENDFOR
FOR i=1 TO k
FOR j=i+1 TO k
IF nn(i)<nn(j)
T=nn(i)
nn(i)=nn(j)
nn(j)=T
ENDIF
ENDFOR
ENDFOR
? "序号","原数","排序后"
FOR i=1 TO k
?i, N(i),nn(i)
ENDFOR
以上程序,主要是为了帮助初学者理解而编写的,实际上还可以优化与精简。
在 注1处,如果不想用min 和max函数,可以将以下两行
tmax=MAX(tmax,N(i))
tmin=MIN(tmin,N(i))
改为:
* 也可用比较运算符,按以下运算
IF tmax <N(i)
tmax=N(i)
ENDIF
IF tmin> N(i)
tmin=N(i)
ENDIF
如果借助于数据表,看以下程序,应该更容易理解,效率也比较高。
***********************************************************
SET TALK OFF
SET SAFE OFF
CLEA ALL
CLEA
* 建立个表, 整数部分15位,小数部分3位。可根据实际需要来确定位数
CREA CURSOR _temp (数据 N (19,3))
k=20 &&表示需要处理的数据个数
i=1
*输入k个数,并赋值给数组n
DO WHILE .T.
INPUT "请输入第 "+STR(i,2)+" 个数: " TO N
IF TYPE("N")="N"
APPE BLAN
REPL 数据 WITH N
i=i+1
ELSE
? " 您输入的数据类型不正确,只能输入数字!"
ENDIF
IF i>k &&只输入 k 个数据
EXIT
ENDIF
ENDDO
INDE ON -数据 TO _l && 注意,“数据”这个字段前加个负号,表示对数值型字段按降序排列
GO TOP
? "最大的数是:",数据
GO BOTT
? "最小的数是:",数据
LIST &&显示结果是从大到小
***********************************************************
当然,最后建立索引、排序那几行,通过SQL语句来实现也是可以的。
- 排序问题-归并排序
- 排序问题-快速排序
- 【排序问题】选择排序
- 排序问题
- 排序 问题
- 排序问题
- 排序问题~~
- 排序问题
- 排序问题
- 排序问题
- 排序问题
- 排序问题
- 排序问题
- 排序 问题
- 排序问题
- 排序问题
- 排序问题
- 排序问题
- Tooltip效果 http://cceer.xmu.edu.cn/blog/post/tooltip.html
- 疯狂的程序员(四川人)
- 偶像==未来的自己
- 一些TCPDUMP语义分析(长期补充)
- 加法器 问题
- 排序 问题
- 内存变量的作用范围
- 在MFC程序中显示JPG/GIF图像
- 关于图形学的几个有用转换
- 我的数据访问工厂类
- 对Oracle收购BEA后的一点思考
- Sun出价10亿美元欲收购MySQL
- 使用EnterPrise2.0封装的数据访问类
- VB.net 点击下载文件