• 締切済み

C言語で戻り値を使った正方形の面積と直方体の体積の表示について分からず

salsberryの回答

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

・実行例が示されていないので、何を表示すればいいか分からない。 ・関数mainの型が正しくない。 ・関数mainの中で"一辺%d"をprintfしようとしている行で、文字列を閉じるダブルクオーテーションがない。変数名の綴りに間違いがある。不要な&演算子がある。 ・行の終わりにセミコロンがないprintfがある。 ・関数titleを作っていない。 ・6)と7)の表示部分を作っていない。 ・関数squareの定義で、引数xの型を宣言していない。 ・関数qubeの定義で、引数の変数名はxと指定されているのにyを使っている。その上、引数の型を宣言していない。 ・関数qubeの定義で、valに計算結果を代入している行の終わりにセミコロンがない。

関連するQ&A

  • 表面積一定の直方体の体積の考え方

    表面積一定の直方体の体積が最大にとなる 条件について考えてます。 横をx 縦をy 高さをz とおくときx=y=zとなることは直感でわかるのですが これを証明するにはどうしたらいいのでしょうか? もしくわこの証明が載ってるHPなどありましたら紹介 していただけると嬉しいです。 どうか宜しくお願いいたします。

  • C言語の勉強をしていて、for文と戻り値を使った階乗について分からずに

    C言語の勉強をしていて、for文と戻り値を使った階乗について分からずに困っています。 以下の点に留意して、階乗を計算するプログラムを作成する。 階乗とは、数字を1つづつ減らしながら掛け合わせたものです。つまり 5の階乗:5×4×3×2×1=120 3の階乗:3×2×1=6 となります。 main内 1)整数型の変数kazu、kekkaを宣言する。 2)“階乗を計算します。”を表示する。 3)実行例と同様の表示になるように、“整数を入力してください”を表示し、入力された値を、変数kazuに読み込む。 4)作成する関数名は、kaijyoとし、kazuを引数とし、戻り値をkekka に代入する。 6)“○の階乗は ○です。”と表示する。 関数kaijyo内 1)引数を変数名xとする。 2)整数型の変数i、valを宣言する。 3)計算結果をvalに入れていくために、valを初期化する(下記注意参照)。 4)iをカウンターとするfor文と複合代入演算子を使って階乗を計算する。 5)valの内容が戻り値となるようにする。 注意:階乗を計算するために、for文の中で複合代入演算子を使って階乗を計算します。しかし、for文に入る前のvalの初期化には注意が必要です。0に何を何回かけても0だと言うことを思い出してください。 という問題です。 それで私は下の通りに作りました。 #include <stdio.h> int kaijyo(int x); void main(void) { int kazu,kekka,kaijyo,sum; printf("階乗を計算します。\n"); printf("整数を入力してください"); scanf("%d",&kazu); kekka=kaijyo(kazu); printf("%dの階乗は%dです。",kazu,kekka); } int kaijyo(int x) { int i,val; val=1; x=1; for(i=1;i<=val;i++){ x=x*i; } return val; } しかし、メイクして実行してもどの階乗でも256になってしまいます。 どこが間違っているのか分からずに困っています。 よかったら教えてください。 よろしくお願いします。 カテゴリを間違ってしまっていたらすみません。

  • 円錐内部にある直方体の体積

    底面の半径r、高さhの直円錐を考える。その内部に面abcd,面efghを正方形とする直方体を考える。ここで、頂点a,b,c,dは直円錐の側面上にあり、頂点e,f,g,hは直円錐の底面上にあるものとする。 直方体の高さをxとするとき、直方体の体積をr,h,xで表せ。 解答では平面aegcで切った断面で解答してあります。 僕は辺の中点を通る面(ad,bc,eh,gfの中点です)で切ってみたのですが、うまくいきません。 このやり方はダメなのでしょうか?よろしくお願いします。

  • 正方形に円が重なる面積の問題です。

    正方形に、正方形の一辺を半径とする円を、正方形の各頂点を中心として、4っつ書きます。この時、中央にできる、膨らんだ正方形に似た感じの面積を求めよ。 この問題、実は小学生に解けて、大学生には解けないと言われている問題です。この問題どう解きますか?自分は正解知りません。

  • 小学5年生、正方形の周の長さ、面積を求める図形の問題です。

    小学5年生、正方形の周の長さ、面積を求める図形の問題です。 以下の問題の導出方法を頼まれました。 問 正方形を組み合わせて図1のような図形を作りました。一番小さい正方形の一辺(茶色部)は1cmです。次の問いに答えなさい。 (1) 一番大きな正方形の周囲の長さ (2) 二番目に大きな正方形の面積 (1) 一番小さい正方形の面積は1cm2 二番目に大きい正方形の面積は一番小さい正方形の面積の二倍だから2cm2 ・・・ 一番大きな正方形の面積は64cm2 正方形の面積は一辺×一辺なので、 同じ数字をかけて64になるのは8、つまり大きい正方形の一辺は8cm 周囲の長さは 8×4=32 A. 32cm (2) 二番目に大きな正方形の面積は、一番大きな正方形の半分なので 64÷2=32 A. 32cm2 このように導出したのですが、 この問題文の条件だけで本当に「一つ大きな正方形は、元の正方形の二倍」なのかという点に疑問が発生しました。 「正方形の中点で接している」とういう条件があれば別ですが、 単に「正方形の組み合わせ」だけならば、極端な話、図2のような組み合わせもあるわけで、この場合面積は二倍になりません。 課題らしく、手元には解答・解説等ありません。 この問題の解答はどのように導出していけばよろしいのでしょうか。

  • 正方形と長方形の面積が同じ?(長文)

     以前(中学生のころ)に数学の図形の時間だったと思いますが、先生に「面白いことを教えてあげる」と言われ、問題を出されました。  その問題とは、面積の計算をすると同じ面積にならない長方形と正方形の折り紙があり、その長方形又は正方形の折り紙のいずれか(正方形を切ったような気がするのですが)を、はさみで三角や四角に切ってもう一方の折り紙にのせて行くと、不思議なことにすき間無く重なるのです。  勿論切った紙が重なったり、はみ出たりはしていません。  そのころは、そんなに気にならずに「ふーん?」なんて簡単に思っていたのですが、最近そのことを思い出し、不思議でなりません。  計算上では同じ面積で無いのに、切って貼り付けるとぴったりはまってしまうなんて?先生いわく「そこがまた数学の面白いところだ」なんて言ってましたが。  あまりにうる覚えな記憶で定かではありませんが、正方形の1辺は8cmだったように思うのですが?  どなたか、その問題と答えを知っておられたら教えてください、また、そんなことは絶対に無くて、私の記憶間違いなのでしょうか?  宜しくお願いします。

  • 一辺の長さがaの正方形の中にある図形の面積

    一辺の長さがaである正方形があります。この正方形の各頂点を中心とする4つの半径aの円に囲まれた四角形?の面積ってこの条件だけで求まりますか? よろしくお願いします。

  • 直方体のすり減った角の部分(三角すい)の体積の求め方

    直方体において角がすり減ったときのそのすり減った分(三角すい)の体積を知りたいのですが,その際に角から見て垂直に存在する底面の面積と,そこから角のあった場所までの高さから体積を求めたいのです. 直角座標系で,あるx,y,z座標に点が存在し,その三点の座標は分からないけれど,その三点で形成される三角形の面積がわかっているときにその底面からの原点までの距離を知りたいということです. うまく説明できているか分かりませんが,理解していただきご回答を頂ければ幸いです. よろしくお願いします.

  • C言語 exitで終了した関数の戻り値

    引数が負の整数であればエラーを表示し終了、0以上の整数であればそのまま戻り値とする関数 int example(int a) { if( a < 0 ) { printf("Error!\n");   exit(1); } return(a); } があったとします。 ここでたとえば  int s1,s2; に対して、 s1 = example(3); とすれば、 s1 = 3 となりますが、 s2 = example(-5); とすれば、 s2 には何が代入されているのでしょうか? 例に書いた関数はしょーもないものですが、 もう少し難しい関数を使って変数に値を入れて、その値で後でfor文などを使って仕分けていくようにしたいのですが、エラー時に代入されるものがわからなくて困っています。 エラー時のみに目印となる値、たとえば -1 などを戻り値とすることはできません。 おねがいします。

  • 2次関数で求める正方形内の四角形における面積最小値

    2次関数の問題についての疑問です。 1辺の長さがaの正方形ABCDにおいて, 辺AB, BC, CD, DA 上にそれぞれ点P, Q, R, Sを AP = BQ = CR = DS となるようにとる. このとき, 四角形PQRSの面積の最小値を求めよ. という問題が参考書にあります。解答には AP = BQ = CR = DS = ax とおくと, xは 0 < x < 1 ・・・(1) を変化する変数である. とあり、三角形APSの面積は 1/2AP・AS = 1/2ax(a-ax) = a^2/2x(1-x) と求めています。四角形の面積は、正方形からそれら三角形の面積を取り除いて求め、 答えは, 値をyとおき y = a^2 - a^2/x(1-x)・4 = a^2{1-2x(1-x)} = a^2(2x^2-2x+1) = a^2{ 2(x-1/2)^2 + 1/2 } ・・・(2) (1), (2)より求める最小値は, a^2/2 となっています。 以下私の疑問です。 私は AP = BQ = CR = DS = ax ではなく、 AP = BQ = CR = DS = x  ・・・ i として問題を解きました。このとき、式は y = a^2 -1/2x(a-x) * 4 = a^2 -2xa + 2x^2 = 2(x - a/2)^2 + a^2/2  ・・・ii となり、やはり最小値は a^2/2 となります。 私の解いた方法では間違いでしょうか。 気になるのは、参考書の解説では最小値のときの値が、x = 1/2 と文字がまざらず、私の方法では最小値 a^2/2 のとき x = a/2 と文字が混ざってしまいます。 それに加え、参考書の答えと比較し, ではaは1なのかとおもい、私の式iiにa = 1を代入して解いてみたのですが、何か具合がよろしくありません。 私のやっていることおかしいでしょうか。 また、問題を解いていて思ったのですが、a = a^2 となる数字は1しか存在しませんか。 最初から1を代入するのではなく、aやa/2を代入して、解いてからグラフ上でa = 1を代入すると上手くいくように思えるのですが、これはいったいどういうことなんでしょう。 独学なもので、身近にだれも聞ける人がおりません。 どなたか、よろしくお願いいたします。