讀取的資料有小數 像是A M N O PA1 2.6 3.2 1.2 5.9A2 0.2 . 2.3 2.6A3 . 2.6 0.2 .想計算有幾個遺漏值"." 上面有3個該怎麼計次我用ch=fgetc(file); if(ch == \'.\') P++;算出來有12個應該怎麼修改謝謝
2006-07-14 19:40:40 · 3 個解答 · 發問者 Anonymous in 電腦與網際網路 ➔ 程式設計
如果想知道遺漏值的位置
該怎麼寫?
ex (A2,N)
2006-07-14 20:05:09 · update #1
每個數都是小數 = =
2006-07-14 20:43:52 · update #2
遺漏值是指前後都沒數字 只有 .
前沒:c=fgetc(f); if (c!='.') p=c; else if (isdigit(p)) P++;
後沒:c=fgetc(f); if (c=='.') ; if (isdigit(c)) P++;
看不太懂是什麼意思...
2006-07-14 21:10:56 · update #3
我改成
ch=fgetc(f);
if(isdigit(ch)==0) P++;
不過跑出來不太對
(c!='.')該怎麼加
2006-07-14 21:47:09 · update #4
請問Jacob Lee
為什麼要寫
if (!isdigit(p_w)) p_w為什麼不可以用ch代替
後面才看到p_w = Word;
這樣不是很奇怪
不太懂p_w在裡面的作用
可以請教一下嗎
謝謝
2006-07-15 10:15:20 · update #5
遺漏值的定義是啥?
是前面沒有數字?是後面沒有數字?是前後都沒有數字?
前沒:c=fgetc(f); if (c!='.') p=c; else if (isdigit(p)) P++;
後沒:c=fgetc(f); if (c=='.') {c=fgetc(f); if (isdigit(c)) P++;
這樣,〝前後沒〞該怎麼寫,會了?
要知道位置,那就要對原始文字檔做點限制,程式會比較好寫。
如:不可有 tab。
你可以用
fseek(f, 算出第幾列第幾個是從哪個byte開始, SEEK_SET); //SEEK_SET是從檔頭開始算的意思
來開始,在你定義的 field_width 裡找〝遺漏值〞
算出第幾列第幾個是從哪個byte開始:Ax 第 y 欄(共 z 欄)( x, y 從 0 算起, z 從 1 算起)
( x * z + y ) * field_width
就可以了。
2006-07-15 02:55:03 補充:
isdigit(c) == 1 if 0 <= c <=9otherwise == 0所以, if (isdigit(c)) P++; 就夠了, 不要加 ==0
2006-07-15 05:04:49 補充:
遺漏值是指前後都沒數字 只有 . 前沒 ( . 或 .0):後沒 ( . 或 0.):都沒 ( 只有 . 。 .0 或 0. 都不算)
2006-07-15 12:04:11 補充:
#include
2006-07-15 12:04:54 補充:
if (word == '.') if (!isdigit(p_w)) // 前一字不是數字 { printf("The %d row %d col misses a value.\n", row, col); tot++; } p_w = word; } printf("Total missed: %d\n", tot); return 0;}
2006-07-15 14:56:05 補充:
p_w Previous Word 應該是 Previous Character 才對,當時想睡覺,用錯字了!你的題目一定要檢查連續的 2 個字:這個和下個,或這個和上個。我不想用下個(compiler 常用的方法),我想用上個。而 p_w 在一開始設為 0 ,沒有 字碼是 0 的文字。所以,iteration 1 時不會誤判。iteration 2 起,p_w就真的是 previous word 了。而且,它會 skip 連續空白,最後一個字元是〝.〞也不會出錯。所以,這個程式是〝前沒 ( . 或 .0)〞版。你若是要後沒、都沒,會改了吧!?
2006-07-15 14:58:57 補充:
if (word == '.') // 如果這個字是〝.〞if (!isdigit(p_w)) // 而前一字不是數字(管它是啥,字母、空白、換列……,它就是不是 〝數字.〞)
2006-07-14 20:45:19 · answer #1 · answered by ? 7 · 0⤊ 0⤋
圖片參考:http://img301.imageshack.us/img301/9993/0715hc8.jpg
#include
2006-07-15 07:21:38 · answer #2 · answered by Almond 6 · 0⤊ 0⤋
每個數都是小數嗎??
2006-07-14 20:39:31 · answer #3 · answered by 無聊的青蛙 5 · 0⤊ 0⤋