用两种不同的方法来求实现数字字符串的最大,最小和平均值(转)

本文介绍了从字符串中选择数字并进行最小值、最大值及平均值计算的方法,同时展示了如何从数据库中选取广告价格的最低值、最高值及平均值,使用了VBScript和ADO数据库连接。
ENABLESESSIONSTATE = False %>
'1. Selecting the numbers from a string:
myString = "2, 4, 6, 8, 10, 12"
aValues = Split(myString, ",", -1, 1)

Function Min(someNumbers)
dblLowestSoFar = Null
For I = LBound(someNumbers) to UBound(someNumbers)
If IsNumeric(someNumbers(I)) Then
 If CDbl(someNumbers(I)) < dblLowestSoFar Or IsNull(dblLowestSoFar) Then
  dblLowestSoFar = CDbl(someNumbers(I))
 End If
End If
Next
Min = dblLowestSoFar
End Function

Function Max(someNumbers)
dblHighestSoFar = Null
For I = LBound(someNumbers) to UBound(someNumbers)
If IsNumeric(someNumbers(I)) Then
 If CDbl(someNumbers(I)) > dblHighestSoFar Or IsNull(dblHighestSoFar) Then
  dblHighestSoFar = CDbl(someNumbers(I))
 End If
End If
Next
Max = dblHighestSoFar
End Function

Function Avg(someNumbers)
dblHighestSoFar = Null
For I = LBound(someNumbers) to UBound(someNumbers)
If IsNumeric(someNumbers(I)) Then
 If CDbl(someNumbers(I)) > dblHighestSoFar Or IsNull(dblHighestSoFar) Then
  dblHighestSoFar = CDbl(someNumbers(I)) + CDbl(someNumbers(I)) /
 End If
End If
Next
Avg = dblHighestSoFar
End Function

'2. Or, selecting the numbers from a database:
Set cnDZ = Server.CreateObject("ADODB.Connection")
cnDZ.Open "DSN=myDatabase"
Set rsLo = cnDZ.Execute("SELECT Min(PRICE) AS loPRICE FROM TBLADS")
Set rsHi = cnDZ.Execute("SELECT Max(PRICE) AS hiPRICE FROM TBLADS")
Set rsAvg = cnDZ.Execute("SELECT Avg(PRICE) AS avgPRICE FROM TBLADS")
%>


1. Selecting the numbers from a string:

The lowest number is:

The highest number is:

The average number is:

2. Selecting the numbers from a database:

The lowest priced ad is:

The highest priced ad is:

The average selling price of these ads is:


cnDZ.Close
Set cnDZ = Nothing
rsLo.Close
Set rsLo = Nothing
rsHi.Close
Set rsHi = Nothing
rsAvg.Close
Set rsAvg = Nothing
%>


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-124685/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-124685/

在处理这个问题时,我们可以采用几种不同方法: 1. **常规数学方法 + 编程实现**: - 先将整数换为字符串,因为整数直接操作其每一位不太方便。 - 通过循环遍历字符串中的每个字符(即每一位数字),将其添加到一个数组或列表中。 - 对于找到最大最小数字,可以直接初始化两个变量,遍历过程中更新最大值(大于当前值则更新)最小值(小于当前值则更新)。 - 计算每位数字平均值,可以先所有数字,除以总位数。 - 排序数组,通常可以使用Python的`sorted()`函数,也可以自定义冒泡排序等方法。 ```python def process_number(n_str): digits = list(map(int, n_str)) # 将字符串为整数列表 max_digit = max(digits) min_digit = min(digits) average = sum(digits) / len(digits) if digits else None # 避免除0错误 sorted_digits = sorted(digits) return max_digit, min_digit, average, sorted_digits # 示例: n = input("请输入一个n位整数: ") max_num, min_num, avg, sorted_digits = process_number(n) ``` 2. **字符串列表换法**: - 直接将输入的字符串看作是一个字符列表,然后分别处理每一位。 - 仍然需要遍历列表来计算最大值最小平均值,但排序部分可以省略,因为已经得到了一个已排序的列表。 ```python def process_string_list(input_list): max_digit = max(input_list) min_digit = min(input_list) average = sum(input_list) / len(input_list) if input_list else None return max_digit, min_digit, average # 示例: input_str = input("请输入一个由数字组成的字符串: ") n_digits = [int(digit) for digit in input_str] max_num, min_num, avg = process_string_list(n_digits) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值