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

#include <stdio.h>
int sumn(double a);

int main(void) {

double b, answer;



while(1){
printf("Input a number:");
scanf("%lf",&b);
answer = sumn(b);
printf("(4*3.14*a*a*a)/3=%f\n",answer);

}


return 0;
}



int sumn(double a){
double sum;
sum=(4*3.14*a*a*a)/3;


return sum;
}

これを実行してもwarning C4244: 'return' : conversion from 'double ' to 'int ', possible loss of dataと出てしまい小数点を切り捨てて表示されてしまいます。
どこが間違っているのでしょうか?
教えてくださいm(_ _ )m

A 回答 (2件)

「どこが間違っているのでしょうか?」


 「int sumn(double a){」の行。もっと詳しく言えば、最初の3文字。プログラムは指定された通りの動作をしているだけですよ。

 関数における引数と返値には、一切関連性はないのですよ。Excelにだって、文字列を渡したら、文字列の長さを整数値で返す関数があるのですから。
    • good
    • 0
この回答へのお礼

わかりました。ありがとうございましたm(_ _ )m

お礼日時:2011/06/17 20:27

int sumn(double a);



この文の各部分がそれぞれどういう意味を持っているのか説明してみてください。

それですべて解決します。

答え教えてもいいけどつまらないので、個人的にはこれで留めておきます。
    • good
    • 0
この回答へのお礼

わかりました。ありがとうございましたm(_ _ )m

お礼日時:2011/06/17 20:28

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