ここから本文です

台形のプログラムで、

yut********さん

2019/4/2121:30:18

台形のプログラムで、

int main(void){
int a=8,b=12,h=10,s;
s=a*h+1/2*(b-a)*h;
printf("s=%d¥n",s);


これだとs=80になってしまい、答えのs=100になりません。どうしたら良いですか?
aは上底、bは下底、hは高さ、sは面積です。

閲覧数:
9
回答数:
2

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

aki********さん

2019/4/2121:42:30

C言語では、変数に型があるように固定の数値にも型があり、
普通に数字を書いた場合、それは整数型として扱われます。
そして、整数同士の計算は値も整数になります。
具体的に言うと
1/2 → 0
になります。
小数点まで計算してほしい場合には、
一部を実数にする必要があります。
具体的には
1.0/2 とする事で、0.5となります。

質問した人からのコメント

2019/4/21 21:46:36

お二人とも分かりやすかったのですが、今回はこの方の回答をベストアンサーにします。
お二人ともありがとうございました。

ベストアンサー以外の回答

1〜1件/1件中

k02********さん

2019/4/2121:40:25

1/2=0 整数の計算

改良版
s=a*h+((b-a)*h)/2;

普通はdoubleを使う。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる