[爆卦]c讀取txt數字是什麼?優點缺點精華區懶人包

為什麼這篇c讀取txt數字鄉民發文收入到精華區:因為在c讀取txt數字這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者DarkPrincex (DP)看板C_and_CPP標題Re: [問題] Dev C++ 如何...


※ 引述《koogoo (Killen)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: Dev C++
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: 問題(Question):
: 以下是我txt黨內的數據資料,我想把它用c++,去將數字大小做分類
: 0-100內的數字有幾個,然後100-200內的數字有幾個,依此類推,
: 我是打算把數據存到矩陣之中,然後將每個數字除以100,就可以分類
: 但是我數據資料太多了,共有1048576個數據,我矩陣好像無法設定這麼大
: 所以請問有其他的寫法嗎???我的程式碼在下面,謝謝!!!!
: 278
: 427
: 454
: 555
: 989
: 1070
: 1195
: 1420
: 914
: 933
: 1251
: 1387
: 1883
: 1770
: 2266
: 1954
: 2147
: 2395
: 2423
: 3113
: .
: .
: .
: .
: .
: .
: 餵入的資料(Input):
: 預期的正確結果(Expected Output):
: 錯誤結果(Wrong Output):
: 程式碼(Code):(請善用置底文網頁, 記得排版)
: #include <stdio.h>
: #include <stdlib.h>
: #include <math.h>
: main(){
: int NX,NY,i,j,n,time;
: NX=59;
: NY=17;
: int x[NX],y[NY];
: FILE *read;
: read=fopen("123.txt","r");
: if(read==NULL) printf("can't\n");
: else printf("yes\n");
: for(i=1;i<1048577;++i){
: fscanf(read,"%d",&x[i]);
: }
: for(n=1;n<175418;++n){
: y[n]=0;
: }
: for(i=1;i<1048577;++i){
: for(n=1;n<175418;++n){
: if ((n-1) < (x[i]*0.01) && (x[i]*0.01) < n){
: y[n]=y[n]+1;
: }
: 補充說明(Supplement):

其實要分辨它的百位數就像原PO說的除以100就好。
所以只要這樣:
#include<stdio.h>
main(){
int i,num[175418]; //num為紀錄數量用,按照上面打175418
int temp;
FILE *read;
read=fopen("123.txt","r");
if(read==NULL) printf("can't\n");
else printf("yes\n");
for(i=0;i<175418;++i) //歸零
num[i]=0;
for(i=0;i<1048576;++i) //其實從0開始跑到1048576就好
fscanf(read,"%d",&temp),num[temp/100]++;
}

然後就結束了。
基本上比起跑雙層for一個一個去try,
還不如主動的分發他們該去的位置好。
然後上面的code應該是看得懂@@
如果不懂的話再問@@

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.127.191
a60301:推 07/18 03:56
MOONRAKER:對嘛,次數累計為什麼要通通塞陣列。 07/18 09:15

你可能也想看看

搜尋相關網站