計算字串中數字的個數與5、這些數字的總合:
每一行有許多隨意的文數字,都代表是一個樣本,為了簡化
問題,在每個要考慮的整數數字的前後至少會有一個或以上
的空白隔開,也不會有浮點數或小數點!而其他非整數的部
分就都可不理他
如果有K行的輸入檔,就應有K行的輸出,如果遇到是空白行,輸出0 0.
------------
範例:
1隻青蛙1張嘴,2張眼精4條腿,乒乓乒乓跳下水
可以在歌詞中看到2個1,1個2,1個4,所以共有4數字,總合為8
--------------------------------------------------------------------------------------------------
我以經解出來了,不是找槍手
不過有人看了我的寫法,說還能寫的更好
而且最近有點受到刺激
在這找最佳解
2005-11-02 06:29:08 · 3 個解答 · 發問者 暴走生物 1 in 電腦與網際網路 ➔ 程式設計
就是說輸入如果是
第一行 "1隻青蛙1張嘴"
第二行 "2張眼精4條腿"
輸出則是
2個數字 總合2
2個數字 總合4
2005-11-02 07:57:41 · update #1
就是說輸入如果是
第一行 "1隻青蛙1張嘴"
第二行 "2張眼精4條腿"
輸出則是
2個數字 總合2
2個數字 總合6
2005-11-02 07:58:02 · update #2
數字會大於9
所以十位數以上都要考慮…
2005-11-02 07:59:19 · update #3
我是想說…把程式碼貼出來的話
多多少少寫法會受引響,所以才沒貼
2005-11-02 08:02:26 · update #4
Dim z, word, a, wordram
Sub zx()
If z = True Then
word = word & Mid(Text1, a, 1)
ElseIf z = False Then
wordram = wordram + Val(word)
word = ""
End If
End Sub
2005-11-02 08:04:06 · update #5
不好意思…貼不下了- -
2005-11-02 08:05:58 · update #6
問題:
一、那數字有可能大於九嗎?
二、數字輸入是一般輸入還是大寫輸入?
最後,你可以把你的寫法貼出,我們看看後告訴你哪裡可以改進
2005-11-02 12:32:35 補充:
用個FOR LOOP就可以算出的東西
假設...數字在 0~9 的範圍內
大概從FOR開始算到NEXT的話,七行左右的程式碼搞定
Private Sub word_count()
Dim ms, one_char As String
Dim i, char_sum As Integer
char_sum = 0
ms = Text1.Text
For i = 1 To Len(Text1.Text)
one_char = Left(ms, 1)
ms = Right(ms, Len(ms) - 1)
If Asc(one_char) > 47 And Asc(one_char) < 58 Then
char_sum = char_sum + CInt(one_char)
End If
Next i
MsgBox "Total = " & char_sum
End Sub
如果數字前後有空白隔開的話,那程式碼可以降到五行搞定
Private Sub word_count_advance()
Dim ms, one_char As String
Dim char_sum As Integer
Dim i As Variant
char_sum = 0
ms = Split(Text1.Text, " ")
For Each i In ms
If IsNumeric(i) And Not (IsNull(i)) Then
char_sum = char_sum + CInt(i)
End If
Next i
MsgBox "Total = " & char_sum
End Sub
剩下的,如果你要有分行(一行一行算)的功能
比方:第一行= 4,第二行=8這種類型的話
那就先用SPLIT之後再套入剛剛的範例內即可,就不重複寫了
2005-11-02 07:32:35 · answer #1 · answered by Anonymous · 0⤊ 0⤋
計算字串中數字的個數與5、這些數字的總合
如果有K行的輸入檔,就應有K行的輸出,如果遇到是空白行,輸出0 0.
這兩行是神麼意思可以說清楚一點ㄇ
2005-11-02 11:50:02 補充:
只要有數字都加嗎?
輸入是用text嗎?
2005-11-02 13:47:03 補充:
Private Sub Command1_Click()
For i = 1 To Len(Text1)
x = Mid(Text1, i, 1)
If IsNumeric(Mid(Text1, i + 1, 1)) = True And IsNumeric(x) = True Then
y = y & x
Else
x = Val(y & x)
y = 0
s = s + x
End If
Next
Print s
End Sub
你說的題目都可以呈現哩
2005-11-02 08:47:03 · answer #2 · answered by Anonymous · 0⤊ 0⤋
Dim S As String, A() As String, T As Integer, C As Integer, I As Integer
S = " 1 隻青蛙 1 張嘴, 2 張眼精 4 條腿,乒乓乒乓跳下水"
A = Split(S, " ")
For I = 0 To UBound(A)
If IsNumeric(A(I)) Then
T = T + CInt(A(I))
C = C + 1
End If
Next
MsgBox "共有 " & C & " 個數字,合計為 " & T
2005-11-02 07:30:17 · answer #3 · answered by W.J.S. 7 · 0⤊ 0⤋