程序优化,这道题该怎么做?求大神指点迷津,把答案发来即可,不胜感激!

程序优化

题目要求:定义数组PAN(包括10个数组元素),要求用户逐个输入这10个元素,按照从高到低排列这10个数组元素,输出上述数组中最大数和最小数。
DIM PAN[10] AS DOUBLE;

FOR I=1 TO 10

INPUT(“请输入10个数中的第”&I&“个元素”) TO PAN[I]

END FOR

FOR M=1 TO 10

FOR N=1 TO 10

IF PAN[M]<PAN[N] THEN

{ TEMP= PAN [M];

PAN[M]=PAN[N];

PAN[N]= TEMP; }

END FOR M

END FOR N

PRINT(“最大值”为,PAN[1]);

PRINT(“最小值”为,PAN[10]);

(1). 优化算法,确保用户输入重复数据或空时,软件系统不会接受。

(2). 优化提高程序运行效率、提高软件性能。

提示:双层循环嵌套的运行效率为N2,降低这部分运算的复杂度。

第1个回答  2017-12-27
(1). 优化算法,确保用户输入重复数据或空时,软件系统不会接受。

你自己写个判断啊 空好判断,重复可以设置个数组来计数,若果数字出现,判断计数是否为零,否则不接受,是就接受

(2). 优化提高程序运行效率、提高软件性能。
这个可以想其它排序方法追问

我要会写就不发出来了,这不是我的专业。。。所以我根本看不懂这是什么

第2个回答  2017-12-27
有点意思,回去再研究下。追问

希望尽快,急需答案,实在不会,看都看不明白。。。。

追答

我不得不说,楼主的这个题目很有问题,已经不是优化的事情了,已经到错误百出的问题。
竟然用三种不同的语言来编写一个程序:1、程序用到VB语言,里面有for语句、有if...then语句、print语句(C语言是printf)、有DIM声明等;2、程序用到C语言,里面有分号、大括号、还有END FOR、数组用了中括号;3、程序用到VFP语言,里面用到INPUT TO语句。
希望楼主能讲清用的是什么语言,本人才疏学浅啊!

追问

这个题就是这样的,这是软件工程与软件测试出的题,是不是这题本身就是错误的呢?

追答

我用VB来弄吧,原程序VB语言居多。
DIM PAN(1 TO 10) AS DOUBLE
DIM I,J AS INTEGER
FOR I=1 TO 10
A:
PAN(I)=INPUTBOX(“请输入10个数中的第”&I&“个元素”)
IF IsNumeric(PAN(I))==FALSE Or PAN(I)==0 THEN
MSGBOX("输入数据为非数字或为0,请重新输入")
GOTO A:
END IF
NEXT I
FOR I=1 TO 9
J=I+1
IF PAN(I)<PAN(J) THEN
TEMP= PAN(I)
PAN(I)=PAN(J)
PAN(J)= TEMP
END IF
NEXT I
PRINT(“最大值”为,PAN(1))
PRINT(“最小值”为,PAN(10))
解释:1、数组声明下标从1-10,因为不这样声明的话,数组下标默认都是0-9的,任何语言都是这样。
2、IF IsNumeric(PAN(I))==FALSE Or PAN(I)==0 THEN 这句是判断数组数据是否为数字或者为0,重复数据没必要判断了,因为题目没说不允许重复。如果输入数据不符合的话,用了GOTO语句跳转到标记A,就可以重新输入。
3、排序部分用了J=I+1,这样就去掉了循环嵌套。

追问

多谢你了,不管怎样你是唯一帮我完成的人,万分感谢你、我直接贴进去就可以了吧

追答

不客气

本回答被提问者采纳
相似回答