Private Sub Form_Load() Open App.Path & "/in.txt" For Input As #1 Input #1, n Close #1 Select Case n Mod 10 Case 0 ans = "辛" Case 1 ans = "壬" Case 2 ans = "癸" Case 3 ans = "甲" Case 4 ans = "乙" Case 5 ans = "丙" Case 6 ans = "丁" Case 7 ans = "戊" Case 8 ans = "己" Case 9 ans = "庚" End Select Select Case n Mod 12 Case 1 ans = "龍" & ans ans = ans & "辰" Case 2 ans = "蛇" & ans ans = ans & "巳" Case 3 ans = "馬" & ans ans = ans & "午" Case 4 ans = "羊" & ans ans = ans & "未" Case 5 ans = "猴" & ans ans = ans & "申" Case 6 ans = "雞" & ans ans = ans & "酉" Case 7 ans = "狗" & ans ans = ans & "戌" Case 8 ans = "豬" & ans ans = ans & "亥" Case 9 ans = "鼠" & ans ans = ans & "子" Case 10 ans = "牛" & ans ans = ans & "丑" Case 11 ans = "虎" & ans ans = ans & "寅" Case 0 ans = "兔" & ans ans = ans & "卯" End Select Open App.Path & "/out.txt" For Output As #2 Print #2, ans Close #2 End Sub 感覺 就是 很笨的方法這樣...
Open App.Path & "\out.txt" For Output As #2 x = n Mod 10 y = n Mod 12 ans = Mid(yaer1, y + 1, 1) & Mid(year2, x + 1, 1) & Mid(year3, y + 1, 1) Print #2, ans Close #2
上面的範例答案好像錯了@@ Private Sub Form_Load() Dim ans As String txt = "雞狗豬鼠牛虎兔龍蛇馬羊猴" txt1 = "甲乙丙丁戊己庚辛壬癸" txt2 = "子丑寅卯辰巳午未申酉戌亥" Open App.Path & "\in.txt" For Input As #1 Input #1, x Close #1 Select Case x Case Is >= 0 ans = Mid(txt, x Mod 12, 1) ans = ans & Mid(txt1, ((x - 3) Mod 10), 1) ans = ans & Mid(txt2, ((x - 3) Mod 12), 1) End Select Open App.Path & "\in.txt" For Input As #1 Print #1, ans Close #1 End Sub
Y揚好, 反正你那邊沒有寫別的選項,就用 if x >=0 then ... end if 而你想要解決西元前的問題的話, 西元1年,餘數為1 西元前1年,如果用-1來輸入的話, 只要在算餘數之前,先用個條件迴圈將它被成正數就好了。 do until x >=0 x = x +120 loop 好險哦,本來想說x = x+12但是發現,還有個取10的餘數的,於是想到加個120,讓它們的餘數值不會改變。去試試吧,(因為,再說一次,我這兒沒有windows系統,所以,也沒有準備visual Basic 6,哈哈,怎麼說也是渡假滑雪中吧。)
Private Sub Form_Load() Open App.Path & "\in.txt" For Input As #1 Open App.Path & "\out.txt" For Output As #2 Y1 = "鼠牛虎兔龍蛇馬羊猴雞狗豬" Y2 = "庚辛壬癸甲乙丙丁戊己" Y3 = "子丑寅卯辰巳午未申酉戌亥" Input #1, x q = x Mod 12 w = x Mod 10 Print #2, Mid(Y1, q - 3, 1) & Mid(Y2, w + 1, 1) & Mid(Y3, q - 3, 1) Print ans Close #1 Close #2 End Sub
Private Sub Form_Load()
回覆刪除Open App.Path & "/in.txt" For Input As #1
Input #1, n
Close #1
Select Case n Mod 10
Case 0
ans = "辛"
Case 1
ans = "壬"
Case 2
ans = "癸"
Case 3
ans = "甲"
Case 4
ans = "乙"
Case 5
ans = "丙"
Case 6
ans = "丁"
Case 7
ans = "戊"
Case 8
ans = "己"
Case 9
ans = "庚"
End Select
Select Case n Mod 12
Case 1
ans = "龍" & ans
ans = ans & "辰"
Case 2
ans = "蛇" & ans
ans = ans & "巳"
Case 3
ans = "馬" & ans
ans = ans & "午"
Case 4
ans = "羊" & ans
ans = ans & "未"
Case 5
ans = "猴" & ans
ans = ans & "申"
Case 6
ans = "雞" & ans
ans = ans & "酉"
Case 7
ans = "狗" & ans
ans = ans & "戌"
Case 8
ans = "豬" & ans
ans = ans & "亥"
Case 9
ans = "鼠" & ans
ans = ans & "子"
Case 10
ans = "牛" & ans
ans = ans & "丑"
Case 11
ans = "虎" & ans
ans = ans & "寅"
Case 0
ans = "兔" & ans
ans = ans & "卯"
End Select
Open App.Path & "/out.txt" For Output As #2
Print #2, ans
Close #2
End Sub
感覺 就是 很笨的方法這樣...
Private Sub Form_Load()
回覆刪除Open App.Path & "\in.txt" For Input As #1
Input #1, n
Close #1
yaer1 = "兔龍蛇馬羊猴雞狗豬鼠牛虎"
year2 = "辛壬癸甲乙丙丁戊己庚"
year3 = "卯辰巳午未申酉戌亥子丑寅"
Open App.Path & "\out.txt" For Output As #2
x = n Mod 10
y = n Mod 12
ans = Mid(yaer1, y + 1, 1) & Mid(year2, x + 1, 1) & Mid(year3, y + 1, 1)
Print #2, ans
Close #2
End Sub
還要推算一下0年的時候是什麼年當初始質@@
回覆刪除上面的範例答案好像錯了@@
回覆刪除Private Sub Form_Load()
Dim ans As String
txt = "雞狗豬鼠牛虎兔龍蛇馬羊猴"
txt1 = "甲乙丙丁戊己庚辛壬癸"
txt2 = "子丑寅卯辰巳午未申酉戌亥"
Open App.Path & "\in.txt" For Input As #1
Input #1, x
Close #1
Select Case x
Case Is >= 0
ans = Mid(txt, x Mod 12, 1)
ans = ans & Mid(txt1, ((x - 3) Mod 10), 1)
ans = ans & Mid(txt2, ((x - 3) Mod 12), 1)
End Select
Open App.Path & "\in.txt" For Input As #1
Print #1, ans
Close #1
End Sub
阿瑋好,
回覆刪除你的方式,高。值得學習。
不過,我手邊沒有參考答案,並不知道你程式出來的答案是對或不對。
要多試幾組看看答案對不對。
高仔好,
就學阿瑋的方式吧。不過,當然,第一次先自己可以做出來,才是王道。做了之後,再去看別人比我好還是不好,學好的。
Y揚好,
你的程式也應該可以執行,只是,
只有一個選項的select case,還不如直接用if。
加油,還是希望全部的儲備選手都能來做作業哦。
老師 用select case 是因為 要判斷西元前XXX 用的
回覆刪除不過 不知道怎嚜判定@@所以 只做這樣@@
Y揚好,
回覆刪除反正你那邊沒有寫別的選項,就用
if x >=0 then
...
end if
而你想要解決西元前的問題的話,
西元1年,餘數為1
西元前1年,如果用-1來輸入的話,
只要在算餘數之前,先用個條件迴圈將它被成正數就好了。
do until x >=0
x = x +120
loop
好險哦,本來想說x = x+12但是發現,還有個取10的餘數的,於是想到加個120,讓它們的餘數值不會改變。去試試吧,(因為,再說一次,我這兒沒有windows系統,所以,也沒有準備visual Basic 6,哈哈,怎麼說也是渡假滑雪中吧。)
輸入範例:
回覆刪除2000
輸出範例:
豬辛亥
看這個範例2000年應該不是指西元2000年
西元2000年可是『龍』年欸= ="
所以應該可以不用考慮有沒有西元前吧@@
恩 查了一下 西元2000年
回覆刪除是為 龍庚辰
並不如試題答案那樣
我也是以試題為基準 (汗
後面類似的題型我會注意查證的 >"<
Private Sub Form_Load()
回覆刪除Open App.Path & "\in.txt" For Input As #1
Open App.Path & "\out.txt" For Output As #2
Y1 = "鼠牛虎兔龍蛇馬羊猴雞狗豬"
Y2 = "庚辛壬癸甲乙丙丁戊己"
Y3 = "子丑寅卯辰巳午未申酉戌亥"
Input #1, x
q = x Mod 12
w = x Mod 10
Print #2, Mid(Y1, q - 3, 1) & Mid(Y2, w + 1, 1) & Mid(Y3, q - 3, 1)
Print ans
Close #1
Close #2
End Sub