dポイントプレゼントキャンペーン実施中!

「簡易電卓」のプログラムです。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行目
}

よろしくお願いいたします。

A 回答 (2件)

除算の余りってのは整数演算だから成り立つのであって実数演算では成り立たない。



整数演算なら 10÷4=2 余り2
実数演算では 10÷4=2.5
%演算子は余りを求める演算子なので実数演算には使えない。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/01/19 12:23

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

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!