ここから本文です

球の体積を求めるプログラム・C言語。

cha********さん

2009/7/714:48:56

球の体積を求めるプログラム・C言語。

球の表面積と体積を求めるプログラムを作成したのですが、
計算してみると数値が正しくありません。。。
どこが間違っているか教えてください。

直径を10とすると・・・
正)表面積314.00 体積523.33
実際)表面積314.00 体積392.50

#include<stdio.h>
#define x 3.14

main(){
double kei=0;

printf("球の直径を入力してください[cm]");
scanf("%lf" ,&kei);
printf("球の表面積は%.2f、体積は%.2fです" ,4*x*(kei/2)*(kei/2),(4/3)*x*(kei/2)*(kei/2)*(kei/2));

return 0;
}

よろしくお願いします。

閲覧数:
2,345
回答数:
3
お礼:
50枚

違反報告

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

mag********さん

2009/7/715:00:20

> printf("球の表面積は%.2f、体積は%.2fです" ,4*x*(kei/2)*(kei/2),(4/3)*x*(kei/2)*(kei/2)*(kei/2));

printf("球の表面積は%.2f、体積は%.2fです" ,4*x*(kei/2)*(kei/2),(4./3)*x*(kei/2)*(kei/2)*(kei/2));

4/3 は、整数同士の除算なので、C言語のルールでは答は 1 になってしまいます。

4./3 とか 4.0 / 3 とか、どちらか一方は浮動小数点リテラルにしておきましょう。

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

2009/7/8 02:59:31

成功 なるほど!!
それは知らなかったです…学べました!もっと勉強しないとですね。。

みなさんの解答とても参考になりました☆ありがとうございました!

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

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

k03********さん

2009/7/717:01:12

#define PI 3.14159265359
int main(){
double kei,r,s,v;
printf("球の直径を入力してください[cm]");
scanf("%lf" ,&kei);
r = kei / 2.0;
s = 4.0 * PI * r * r;
v = (s * r) / 3.0;
printf("\n球の表面積は%10.2f、体積は%10.2fです。\n" ,s,v);
return 0;
}

プロフィール画像

カテゴリマスター

tom********さん

2009/7/714:51:00

球の体積は 4/3*pi*r^3 です。
べき乗の計算は他の部分より先にやらないといけません。
カッコを付けて優先順位を明示化すれば多分大丈夫。

あわせて知りたい

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

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

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

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

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

閉じる

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

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

閉じる