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)

kiten 2005-10-20 10:37 AM

引用:
作者cowbayla
本來想想幫幫忙的 但是寫到一半發現卡住了 嗚~

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

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

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

那個我要去翻書才會了.

我不知這樣算不算犯規
因為C程式寫起來比較辛苦 :stupefy:
假設用python或perl寫好一個程式確定可執行
以python為例執行方式為python filename.py
我的C程式只需一行就行了
system("python filename.py") :flash:
呼叫作業系統執行已編寫好的python程式 :D

Michael7 2005-10-20 12:26 PM

引用:
作者boyman
你應該不是讀資訊相關的吧 :flash:

應該不是
連檔名都看不出來的話

樓主kurt要仔細看
眼睛的用處很多
但是要”用”
明明就說是py 還要再問一次是不是c....
這樣大家會有orz的感覺....

Michael7 2005-10-20 12:34 PM

引用:
作者UP-UP
請問,如何修改eM(騾子)
PS. 門外漢

ahh.... in this case....
首先,修行在個人.....
再來,這東西是open source
第三,所以就去找其source code, 官網有
最後,還是回到我前面說的,修行在個人....


-------------------------------------
題外,沒事改它做啥??
名聲已經不太好了還想再低一點?

瘋狂火星人 2005-10-20 12:39 PM

引用:
作者cowbayla
本來想想幫幫忙的 但是寫到一半發現卡住了 嗚~

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

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

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

那個我要去翻書才會了.


以我學的DELPHI來說,陣列可以動態指定長度,C應該也行....

檔案要先用符號把數字隔開,或是分行....
讀檔之後判斷有多少數字,就可以設定多大的陣列長度.....
接下來就是基本的比大小排序了......

瘋狂火星人 2005-10-20 12:40 PM

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

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

真的就只是這樣....


別說C,就連QB都寫的出來...... :laugh:
寫這種東西是最最基本的....
樓主該好好考慮是不是要繼續走程式這一行了.... :think:

harrisonlin 2005-10-20 03:15 PM

引用:
作者kiten
我不知這樣算不算犯規
因為C程式寫起來比較辛苦 :stupefy:
假設用python或perl寫好一個程式確定可執行
以python為例執行方式為python filename.py
我的C程式只需一行就行了
system("python filename.py") :flash:
呼叫作業系統執行已編寫好的python程式 :D



沒想到在 78 區也可以遇到 Python 的愛好者...:D

kiten 2005-10-20 05:05 PM

引用:
作者harrisonlin
沒想到在 78 區也可以遇到 Python 的愛好者...:D

自從用了python後,我把Delphi,VB,C等通通忘光啦
我用python很輕易地解決下列問題(跟公務絕對相關)
1.telnet
2.regular expression
3.md5編碼
4.sha編碼
5.sort
6.匯出資料到excel及公式
.....
用C或Delphi恐怕我要付出超過十倍以上的程式碼及時間才能達到相同需求

harrisonlin 2005-10-20 05:07 PM

引用:
作者kiten
自從用了python後,我把Delphi,VB,C等通通忘光啦
我用python很輕易地解決下列問題(跟公務絕對相關)
1.telnet
2.regular expression
3.md5編碼
4.sha編碼
5.sort
6.匯出資料到excel及公式
.....
用C或Delphi恐怕我要付出超過十倍以上的程式碼及時間才能達到相同需求


看來 kiten 兄用 Python 用得比我還熱絡呢~ :)

的確, Python 的好,用過的人都知道!

cowbayla 2005-10-20 06:10 PM

這是用C寫的 希望對你有幫助~
1. 開檔 A 和 B 檔 並且讀去 array a 和 array b ..

if( (pTextFile=fopen(TEXT_FILE_PATH_AND_FILENAME, "r")) == NULL)
{
printf("\nProblem reading file: %s\n", TEXT_FILE_PATH_AND_FILENAME);
}
else if( (pTextFile2=fopen(SECOND_TEXT_FILE_PATH_AND_FILENAME, "r")) == NULL)
{
printf("\nProblem reading file: %s\n", SECOND_TEXT_FILE_PATH_AND_FILENAME);
}
else
{
iCharsReadFromFile = 0; //用來計算array 裡面總共有計個數字
iCharsReadFromFile2 = 0;


//開始讀取檔案A
while( cCharFromFile != EOF && iCharsReadFromFile < MAX_FILE_SIZE )
{

sTextFileContents[iCharsReadFromFile++] = cCharFromFile;

//一次讀一條int去array
fscanf(pTextFile,"%d",cCharFromFile );

}
//開始讀取檔案B
while( cCharFromFile2 != EOF && iCharsReadFromFile2 < MAX_FILE_SIZE )
{

sTextFileContents2[iCharsReadFromFile2++] = cCharFromFile;


cCharFromFile2 = fgetc(pTextFile2);
}

2 用merge function 把 兩個a 和 b array 合併起來 到c~


void merge(int [], int asize, int B[], int bsize, int C[], int csize) {
int ai, bi, ci, i;

ai = 0;
bi = 0;
ci = 0;
while ((ai < asize) && (bi <= bsize)) {
if (A[ai] <= B[bi]) {
C[ci] = A[ai];
ci++; ai++;
} else {
C[ci] = B[bi];
ci++; bi++;
}
}

if (ai >= asize)
for (i = ci; i < csize; i++, bi++)
C[i] = B[bi];
else
for (i = ci; i < csize; i++, ai++)
C[i] = A[ai];

}

3.比大小 array用 sort..
這裡偷懶 記得 #include <stdlib.h>

//c代表array 名稱,csize 代表array的大小

heapSort(c, csize);

4. 在array最後加個'\0'.. 忘記為什麼要這樣 老師教的

sResultTextFileContents[iCharsReadFromFile + iCharsReadFromFile2] = '\0';

5.. 用 fpintf() 來列印C 到新的檔案.
fprintf( stream, "%f\n", fp );

6.
關檔
fclose(pTextFile);// a檔
fclose(pTextFile2);//b檔
fclose(pResultFile);//c檔

ElvisTu 2005-10-20 07:53 PM

引用:
作者瘋狂火星人
以我學的DELPHI來說,陣列可以動態指定長度,C應該也行....

檔案要先用符號把數字隔開,或是分行....
讀檔之後判斷有多少數字,就可以設定多大的陣列長度.....
接下來就是基本的比大小排序了......

+1
在perl 的 陣列的長度也是動態
隨時可以擴充和減少…

小弟學perl來寫cgi的


所有的時間均為GMT +8。 現在的時間是01:43 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。