- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c言語でデータの指定列の度数分布をつくろうとしています。)
C言語でデータの指定列の度数分布を作る方法
このQ&Aのポイント
- C言語でデータの指定列の度数分布を作る方法について解説します。
- 指定列のデータに対してプログラムを組んで、度数分布を作成することができます。
- 複数列のデータに対しても同様の方法で度数分布を作成することができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
やることは一緒ですよ ただ fgetsで一行取得した中から 6列目をどう見つけるかだけだと思います データの区切りが『,』であるなら char* FindData( char* str, int n ) { char *ptr = NULL; if ( n > 0 ) { if ( NULL != (ptr = strcchr( str, ',' )) ) { --n; ptr++; // 最初の『,』をスキップ while( n-- ) { ptr = strchr( ptr, ',' ); if ( ptr == NULL ) break; ptr++; // 見つけた『,』をスキップ } } } else if ( n == 0 ) { ptr = str; } return ptr; } といった関数を用意して while((fgets(str, 256, fp)) != NULL){ // 1列目が0としているので 6列目なら5を引数にします char *p = FindData( str, 5 ); if ( p != NULL ) { double dbl = atof(str); if(!(dbl < LOWERBOUND || dbl > UPPERBOUND)){ int n = (dbl-LOWERBOUND)/RANGE; table[n]++; } } } といった具合でしょう
お礼
ご丁寧に教えていただきありがとうございます。