{已解决} 数组求和的问题
本帖最后由 minterz 于 2009-7-7 18:48 编辑具体问题是这样的,有一个数组,如下例
序号 名称 时间
1 aa 00:45
2 bb 00:01
3 cc 01:45
4 bb 20:41
.
.
.
n aa 12:45
问题就是,得到这个数组后,array保存的是数组的总量
现在得到 所有名称"aa"对应的 "时间" 值的和. ..
_ArrayFindAll 函数,可以找到 所有名称"aa"对应的 "时间" 值,并另外定义到一个一维数组。
个人遇到的难点有两个:
1、如何对这个新定义的 一维数组所有的值进行求和,这个表达式应该怎么写啊。
2、如何对时间格式的数字,进行求和。
新手提问,不知道描述清楚了没有。、
希望得到大家的帮助,谢谢。。 解决楼主第二个问题。。。第一个问题请自行修改。。
#include <file.au3>
Dim $aRecords
Dim $num
If Not _FileReadToArray("txt.txt", $aRecords) Then
Exit
EndIf
For $i = 1 To $aRecords
$aRecords[$i] = StringStripWS($aRecords[$i], 4)
If $aRecords[$i] = "" Then ExitLoop
$temp = StringSplit($aRecords[$i], " ")
ReDim $num[$i + 1]
$num = $i
$num[$i] = $temp
Next
$secend = 0
$minite = 0
For $i = 1 To $num
$temp = StringSplit($num[$i], ":")
$secend += Number($temp)
If $secend > 60 Then
$secend -= 60
$minite += 1
EndIf
$minite += Number($temp)
Next
MsgBox(0, 0, $minite & ":" & $secend) 本帖最后由 caodongchun 于 2009-7-7 16:04 编辑
一小时60分,一分60秒,$resulth resultm 随你!
引用楼上的吧,之前我的句子有点长,没必要
;先模拟一个你的一维数组
Dim $array
For $x = 0 To UBound($array) - 1
$array[$x] = Random(0, 100, 1) & ':' & Random(0, 59, 1)
Next
;正题
Dim $resulth = 0, $resultm = 0
For $x = 0 To UBound($array) - 1
$time = StringSplit($array[$x], ':')
$hour = Number($time)
$min = Number($time)
$resulth += $hour
$resultm += $min
If $resultm>60 Then
$resultm=$resultm-60
$resulth +=1
EndIf
Next
MsgBox(64, '', $resulth & ':' & $resultm) 楼上的两位代码都可以用了,只是我很不明白,这个是啥意思$resulth +=1
怎么 += 也可以运行 ..
按我的理解,应该$1= $2 + $1 才对的吧 ..
谢谢... $resulth +=1就是$resulth =$resulth +1
页:
[1]