如和判別個別數字出現的次數? |
答題得分者是:christie
|
supergba2002
一般會員 發表:2 回覆:2 積分:0 註冊:2008-09-26 發送簡訊給我 |
我有一份txt檔,我想讀入第一行的數值
1 6 3.00 90000.00 1 7 3.00 90000.00 2 8 1.80 90000.00 2 9 1.80 90000.00 3 10 2.00 90000.00 3 11 2.00 90000.00 4 12 1.20 90000.00 4 13 1.20 90000.00 5 41 2.00 90000.00 . . . 並判斷個數字出現的次數,輸出的結果如下: A[1]=2 A[2]=2 A[3]=2 A[4]=2 A[5]=1 . . . 如何寫最簡單呢? 有請指點! |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
你PO了第二次了,這次我終於有些了解你在問什麼。
你的問題可大可小,我先把問題縮到最簡版,即假設 第一: 1,2,3,4… 每個數值都一定會循序出現,且不會跳號(比如1、2、3、9 從3就跳到9)。 第二: 你已經先初始化一個固定大小的一維陣列。比如說文字檔共9列,那就宣告 int A[10] = {0}; //其中A[0]不會用到,思考一下 第三: 你會自己用迴圈一列一列的把第一行的字串s讀出。 三個條件成立後就開始如下計算: [code cpp] int i; //暫存用的數值 //開始迴圈裡 //一些取讀檔取第一行s的程式 i = StrToInt(s); //假設s是取出來的字串 A[i]=A[i] 1; //......你的一些程式碼 //結束迴圈 [/code] 假如說,你原來的條件不合我三個假設,那你就要改程式。那就變得更復雜! 有必要的時候再請把條件講更清楚以方便前輩幫你。
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan
編輯記錄
aftcast 重新編輯於 2008-09-30 02:52:41, 註解 無‧
|
supergba2002
一般會員 發表:2 回覆:2 積分:0 註冊:2008-09-26 發送簡訊給我 |
[code cpp] #include #include #include #include using namespace std; void main() { int i=1,j=1,k,h=1; double link[457][4]={0}; // int a[457][2]={0}; // ifstream file("big-link.txt",ios::in); if(!file) { cout << "檔案無法開啟"< } for (i=1;i<=457;i ) // { for (j=1;j<=4;j ) { file >> link[i][j] ; } } file.close(); a[h][1]=link[1][1]; a[h][2] ; for(k=2;k<=457;k ) // { if(link[k][1]==a[h][1]) { a[h][2] ; a[h][1]=link[k][1]; } else { cout << "A[" << a[h][1] << "] = " << a[h][2] << endl; h ; a[h][1] = link[k][1]; a[h][2] ; } } 我用visual c 寫的,目前還是有點問題... 1.txt檔的資料筆數不一定,有可能100筆...500筆...1000筆,都要能讀進去運算出A[i] 2.txt檔的2.3.4行雖然這次的程式不需要用到,但往後的程式延伸會用到 3.實際txt檔中會有跳號的現象,好比2出現0次 [/code] |
hdilwy
初階會員 發表:18 回覆:65 積分:41 註冊:2004-08-31 發送簡訊給我 |
|
christie
資深會員 發表:30 回覆:299 積分:475 註冊:2005-03-25 發送簡訊給我 |
#include <stdio.h>
#include <math.h><br />int main(void) { FILE *in; char buffer[80]; int x; int a[8000]; for(x=0; x<8000;x ) a[x]=0; if ((in = fopen("smallink.txt", "rt")) == NULL) { fprintf(stderr, "Cannot open input file.\n"); return 1; } memset(buffer,'\0',80); while(fgets(buffer, 80, in) != 0) { printf("%d ",atoi(buffer)); x=atoi(buffer); a[x] ; memset(buffer,'\0',80); } fclose(in); return 0; } ===================引 用 supergba2002 文 章=================== 我有一份txt檔,我想讀入第一行的數值 1 6 3.00 90000.00 1 7 3.00 90000.00 2 8 1.80 90000.00 2 9 1.80 90000.00 3 10 2.00 90000.00 3 11 2.00 90000.00 4 12 1.20 90000.00 4 13 1.20 90000.00 5 41 2.00 90000.00 . . 並判斷個數字出現的次數,輸出的結果如下: A[1]=2 A[2]=2 A[3]=2 A[4]=2 A[5]=1 . . 如何寫最簡單呢? 有請指點!
------
What do we live for if not to make life less difficult for each other? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |