質問: ご覧いただきありがとうございます。 任意の入力したn個のデータから、決めた数以上の数が何個であるか調べるプログラムを作成しております。 質問は以下になります。 調べたい数と基準とする数を実数にしたいのですが、floatにした場合うまくプログラムが作動しません。また、intのときは小さな数では作動してくれるのですが、10個分の判定など大きな数になってくるとうまく作動しません。どこが違うのでしょうか。 この形式のプログラミングは初めてでどのような流れか理解しておきたいです。なのでヒントではなく答えを教えていただけると助かります。 そして、エラーコードからdata[100]の部分が間違っていると思うのですが、組み込んでいるのに使われていないと出てしまうのはどういうことなのでしょう。 ご迷惑おかけしますがお手を伸べていただけると幸いです。 よろしくお願いします。 #include int main(void) { int i,n,a; float x,j; float data[100]; printf("データの個数入力 : "); scanf("%d",&n); for(i=1;i=x){ a+=1; } } printf("%f以上のデータは%d個",x,a); return 0; } ### 発生している問題・エラーメッセージ prog.c: In function ‘main’: prog.c:13:25: error: array subscript is not an integer scanf("%f",&data[j]); ^ prog.c:22:16: error: array subscript is not an integer if(data[j]>=x){ ^ prog.c:7:11: warning: variable ‘data’ set but not used [-Wunused-but-set-variable] float data[100]; ### 試したこと for文の条件の変更 int,floatの変更 文の順番入れ替え 指定するデータの変更 実行データの確認
回答: `data[j]` がエラーですね。 j は整数である必要があるのですが、`float x,j;` 未使用と言われるのは、上記のエラーの結果。