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

現在C言語を勉強中のものです。
以下のプログラムを実行すると、面積の計算結果が0になってしまいます。
doubleを全てintに、%fを全て%dにするとうまく動くのは確認したのですが、
自分が作りたいのは、引数をdoubleにし、実行結果も小数点込みで計算するものです。

以下のプログラムの問題点とその理由、またどのように書き換えることでうまく動くのかを教えていただけたらと思います。
よろしくお願いいたします。

~~以下コード~~
#include <stdio.h>

double tri(double,double);

int main(){
   double takasa,teihen;
   double menseki;
   printf("takasa=");
   scanf("%f",&takasa);
   printf("teihen=");
   scanf("%f",&teihen);
   menseki = tri(takasa,teihen);
   printf("menseki = %f",menseki);
}

double tri(double n1,double n2){
   return n1*n2/2;
}

~~以下実行結果~~
takasa=3
teihen=4
menseki = 0.000000

A 回答 (2件)

doubleのフォーマット指定子は%fではなく%lfです


とりあえずそこを変えてみて実行してみてください
    • good
    • 1
この回答へのお礼

scanfの%fを%lfにしたらうまくいきました。
おかげでスッキリしました。
ありがとうございました!!

お礼日時:2017/08/01 16:29

わからないけど、面積を求める割り算の分母を2.0にしてみたら。

    • good
    • 1

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