• ベストアンサー

簡易電卓にて

「簡易電卓」のプログラムです。52行目にて「浮動小数点の不正な使用」とエラーが出てしまいます。何が間違っているのでしょうか? void kahou(void); void gennpou(void); void zyouhou(void); void zyohou(void); void zyouyo(void); #include <stdio.h> float q,w,r; int main(void) { int a,e; printf("2項の四則演算をさせるプログラムを実行します。\n"); printf("ちなみに変数は実数処理です。"); printf("第1項を入力してください。\n"); scanf("%f",&q); printf("次に第2項を入力してください。\n"); scanf("%f",&w); printf("最後に演算子を括弧から選択してください。(1)加法(2)減法(3)乗法(4)除法(5)剰余"); scanf("%d",&e); if (e==1) kahou(); else if (e==2) gennpou(); else if (e==3) zyouhou(); else if (e==4) zyohou(); else if (e==5) zyouyo(); else main(); printf("計算結果 %f",r); return 0; } void kahou(void) { r=q+w; } void gennpou(void) { r=q-w; } void zyouhou(void) { r=q*w; } void zyohou(void) { r=q/w; } void zyouyo(void) { r=q%w;    →ここが52行目 } よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • buriburi3
  • ベストアンサー率44% (353/792)
回答No.1

除算の余りってのは整数演算だから成り立つのであって実数演算では成り立たない。 整数演算なら 10÷4=2 余り2 実数演算では 10÷4=2.5 %演算子は余りを求める演算子なので実数演算には使えない。

rinnshan
質問者

お礼

なるほど。 %にはfloatというオペランドは使えないのですね。 ありがとうございました。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

「% のオペランドとして float を使う」のが間違っている.

関連するQ&A