PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   寫程式問題 有請高人入座 (https://www.pcdvd.com.tw/showthread.php?t=550183)

isamuplus 2005-10-19 01:26 AM

N個數當然是宣告一個大小為N的陣列,M個數當然是宣告一個大小為M的陣列...
然後宣告一個大小為N+M的陣列,把前兩個陣列通通塞進去,然後sort...

你學C語言該不會連陣列都沒聽過吧...

capitalm 2005-10-19 01:34 AM

如果不排斥用 C++ 的話,可以用 std::vector 以及 std::sort 偷吃步 :cool:

zick.char 2005-10-19 01:40 AM

引用:
作者kurt66
用C 是否寫的出來呢

我考試要用什麼AEGOXX 我不懂

C絕對可以....
小弟沒學過C....所以正確的語法不敢亂寫....
不過過程就像ElvisTu說的那樣....(大部分的程式)

宣告陣列a型態大小(N)等
宣告陣列b型態大小(M)等
宣告陣列C型態大小(N+M)等
開檔案(或record)a並帶入給 陣列a
開檔案(或record)b並帶入 給陣列b
陣列a + 陣列b之後丟給陣列C
排序陣列C
開新檔(指定要存放的地方)
寫入檔案(存入到剛剛那個新開的檔案)

真的就只是這樣....

kiten 2005-10-19 07:56 PM

引用:
作者kurt66
用C 是否寫的出來呢

我考試要用什麼AEGOXX 我不懂


原題目:
A B兩各檔案 A裡面有N各數字 B裡面有M的數字

如何 合併 一各檔案 C 再由小至大排序

有大大可以解答嗎
如果不限語言及開發工具我這裡提供python程式
(手中沒工具可能有寫錯)

請用任何文字編輯器照著打,如果有錯請自行更正,另外所有的for迴圈區塊請務必縮排,畫面上我無法顯示縮排後的結果

檔名為:mergesort.py
執行方式: python mergesort.py

# 開啟檔案A,B為讀取,C為寫入
A = r"A"
B = r"B"
C = r"C"
fileA = open(A,'r')
fileB = open(B,'r')
fileC = open(C,'w')
#將檔案A及B全部讀入到listA及listB(list若不懂當成陣列思考好了)
listA = fileA.readlines()
listB = fileB.readlines()

# 宣告最後的結果為listC
listC = []
#將listA及listB由字串轉成數值
for idxA in range(len(listA)):
#如果有Enter將\r及\n變成空字串
listA[idxA] = listA[idxA].replace('\r','')
listA[idxA] = listA[idxA].replace('\n','')
#將字串轉成數值,如果不是int請自行取代成浮點數函數
listA[idxA] = int(listA[idxA])
#將數值存入listC
listC.append(listA[idxA])

for idxB in range(len(listB)):
#如果有Enter將\r及\n變成空字串
listB[idxB] = listB[idxB].replace('\r','')
listB[idxB] = listB[idxB].replace('\n','')
#將字串轉成數值,如果不是int請自行取代成浮點數函數
listB[idxB] = int(listB[idxB])
#將數值存入listC
listC.append(listB[idxB])

#將listC排序之
listC.sort()

#將排序後的結果存入檔案C
for idxC in range(len(listC)):
#將數值資料轉成文字,並加上Enter
fileC.write(str(listC[idxC]) + '\n')

#關閉所有檔案
flieA.close()
fileB.close()
fileC.close()

kurt66 2005-10-19 07:58 PM

高人 我正在啃食中 這算c++嗎

kiten 2005-10-19 08:05 PM

引用:
作者kurt66
高人 我正在啃食中 這算c++嗎

不知您在問誰?如果是問我的話我先給您提示
1.這是python原始碼,副檔名為.py,好像C語言的副檔名為.c一般
2.如果老師不限開發語言及工具,將我的程式將迴圈區塊縮排後,存成.py檔
如果沒錯誤的話(我post時手中無工具測試成功與否)
3.如果老師限制開發語言為C的話,請將我的原始碼改寫成C語言,這應該就是您的工作了

boyman 2005-10-19 08:07 PM

引用:
作者kurt66
高人 我正在啃食中 這算c++嗎


你應該不是讀資訊相關的吧 :flash:

metadata 2005-10-19 10:39 PM

引用:
作者kurt66
高人 我正在啃食中 這算c++嗎


寫程式無捷徑
看完別人的範例後自己寫一個看看
寫程式好玩就在解法無限多

UP-UP 2005-10-20 04:38 AM

請問,如何修改eM(騾子)
PS. 門外漢

cowbayla 2005-10-20 08:21 AM

本來想想幫幫忙的 但是寫到一半發現卡住了 嗚~

請問該兩個檔案都是只有數字嗎?

比大小的方式是那種 123 32 8787 還是一個一個數字比的像是 5 2 3 1 3 4 的阿?

還有可以知道array 最大要開多大嘛? 不然好像要用alloc () 耶,忘光了..

那個我要去翻書才會了.


所有的時間均為GMT +8。 現在的時間是09:38 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。