找回密码
 加入
搜索
查看: 1222|回复: 4

{已解决} 数组求和的问题

[复制链接]
发表于 2009-7-7 11:45:24 | 显示全部楼层 |阅读模式
本帖最后由 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[0][0][0]保存的是数组的总量
现在得到 所有名称  "aa"  对应的 "时间" 值的和. ..
_ArrayFindAll   函数,可以找到 所有名称  "aa"  对应的 "时间" 值,并另外定义到一个一维数组。

个人遇到的难点有两个:
1、如何对这个新定义的 一维数组所有的值进行求和,这个表达式应该怎么写啊。
2、如何对时间格式的数字,进行求和。

新手提问,不知道描述清楚了没有。、
希望得到大家的帮助,谢谢。。
发表于 2009-7-7 15:10:43 | 显示全部楼层
解决楼主第二个问题。。。第一个问题请自行修改。。
[au3]#include <file.au3>
Dim $aRecords
Dim $num[1]
If Not _FileReadToArray("txt.txt", $aRecords) Then
        Exit
EndIf
For $i = 1 To $aRecords[0]
        $aRecords[$i] = StringStripWS($aRecords[$i], 4)
        If $aRecords[$i] = "" Then ExitLoop
        $temp = StringSplit($aRecords[$i], " ")
        ReDim $num[$i + 1]
        $num[0] = $i
        $num[$i] = $temp[3]
Next
$secend = 0
$minite = 0
For $i = 1 To $num[0]
        $temp = StringSplit($num[$i], ":")
        $secend += Number($temp[2])
        If $secend > 60 Then
                $secend -= 60
                $minite += 1
        EndIf
        $minite += Number($temp[1])
Next
MsgBox(0, 0, $minite & ":" & $secend)[/au3]
发表于 2009-7-7 15:45:36 | 显示全部楼层
本帖最后由 caodongchun 于 2009-7-7 16:04 编辑

一小时60分,一分60秒,$resulth resultm 随你!
引用楼上的吧,之前我的句子有点长,没必要
;先模拟一个你的一维数组
Dim $array[Random(2, 10, 1)] 

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[1])
        $min = Number($time[2])
    $resulth += $hour
        $resultm += $min
        If $resultm>60 Then
                $resultm=$resultm-60
                $resulth +=1
        EndIf
        
Next
MsgBox(64, '', $resulth & ':' & $resultm)
 楼主| 发表于 2009-7-7 18:48:11 | 显示全部楼层
楼上的两位代码都可以用了,只是我很不明白,这个是啥意思  $resulth +=1
怎么 += 也可以运行 ..
按我的理解,应该$1= $2 + $1 才对的吧 ..
谢谢...
发表于 2009-7-7 22:32:12 | 显示全部楼层
$resulth +=1就是$resulth =$resulth +1
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-28 15:31 , Processed in 0.074257 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表