一组数字,找出最接近指定数字的数字,负数不要……(已解决)
本帖最后由 dearmb 于 2014-4-6 15:52 编辑首先先指定一个两个小点,获取两点的X,Y坐标
然后获取所有横杠的坐标,放到一个数组里,横杠的Y坐标和两点的Y坐标最近的,就是正好那个范围
所以才有这个帖子的题目,这就是我的目的 建立个数组,把所有的数字和指定数字都包含在内,排序,找出指定数字的索引,下一项就是要找的数字 回复 2# netegg
我是想把数字添加到数组里,但是现在的情况是,数组大小和数组内容都是变量
是在数组之前获取到的,好像不支持内容是变量的数组呢 何必管数组大小呢,redim就完了 如果是已经获取到的数据,做个不定数组就行了 回复 5# netegg
什么叫做“不定数组”?
我在学习redim呢 dim $a=$i
....
redim $a = $i +1
大概意思 本帖最后由 skyfree 于 2014-3-8 08:49 编辑
#include <Array.au3>
Opt('MustDeclareVars', 1)
_Demo__Main()
Exit
Func _Demo__Main()
;输入
Local $r1, $r2
; <---- 注意,因为只是测试和范例,我并没有增加审查机制,所以输入值务必是正确的 ----->
$r1 = InputBox('请输入', '请输入指定数, 如55', '55')
$r2 = InputBox('请输入', '请输入一组数, 多个使用英文逗号隔开, 如23,34,88,95', '34,88,23,95')
;处理
Local $Num = Number($r1)
Local $ta_Arr = StringSplit($r2, ',')
Local $a_Num, $p = 1
Local $i
For $i = 1 To UBound($ta_Arr, 1) - 1
If Number($ta_Arr[$i]) - $Num > 0 Then
ReDim $a_Num[$p + 1]
$a_Num[$p] = Number($ta_Arr[$i])
$a_Num[$p] = Number($ta_Arr[$i]) - $Num
$p += 1
EndIf
Next
_ArraySort($a_Num, 0, 1, 0, 1)
;;_ArrayDisplay($a_Num,'$a_Num')
;输出
MsgBox(0 + 64, '', '最接近' & $Num & '的数是' & $a_Num)
EndFunc ;==>_Demo__Main
本帖最后由 netegg 于 2014-3-7 21:28 编辑
回复 8# skyfree
不觉得搞出个二维数组有点画蛇添足吗
其实我不清楚楼主的具体要求和具体情况为何 回复 9# netegg
拿出解决方案来,再评论。 #include<array.au3>
$aa = _arraysort($aA)
_ArraySearch($aa, $item) {:face (460):} 实在想不出好的办法来,笨人笨法~
#include <Array.au3>
Dim $num =
Dim $x = 0, $compN = 55
Dim $k
For $i = 1 To $num
If $num[$i] > $compN Then
For $element In $num
If $num[$i] < $element Then
If $x = 0 Then
$x = $num[$i]
$k = $i
ElseIf $num[$i] < $x Then
$x = $num[$i]
$k = $i
EndIf
EndIf
Next
EndIf
Next
MsgBox(0, "该数组中最接近" & $compN & "的值", "$num[" & $k & "] = " & $x) Dim $array=
Dim $num=55
Dim $j=-1,$k=0
For $i=0 To UBound($array)-1
If $array[$i]>=$num Then
If $j=-1 Then
$j=$array[$i]-$num
$k=$array[$i]
ElseIf $array[$i]-$num<$j Then
$j=$array[$i]-$num
$k=$array[$i]
EndIf
EndIf
Next
MsgBox(1,"","最接近"&$num&"的数是"&$k) 回复 12# netegg
呃……_arraysort也不是按数字大小排序啊,是按首字母排序啊,好像文件名排序一样……唉
_ArrayDisplay($arrhenggang, "原数组")
_Arraysort($arrhenggang)
_ArrayDisplay($arrhenggang, "原数组")
实际需求上图了,请帮忙看下,多谢了
页:
[1]
2