9年前c++を勉強(練習)しています。謎なことがあるので教えていただければ助かります。1.main関数の中には別の関数を作れないのでしょうか?2.main関数から別の関数を呼び出す場合は、main関数は一番最後に書いて置かないと動きませんか?3.main関数以外に関数がある場合(例えば関数A)で、両方で使われる変数がある場合はglobal変数として?冒頭、つまり全ての関数の外で、定義しとかないとどうしても動きませんか?4.使っている問題集で、main関数の中最後に標準出力puts、coutがあるかと思えば、別の呼び出される関数(最後によびだされる関数)の中に標準出力が書かれていたりします。どちらでも同じですか?4つとも、何度か試してみたものの、未解決の疑問です。そもそも出来ないことを試しているということも考えられ、質問しようと思った次第です。0;}2、mainより上に宣言を書けば問題ないです。関数の中で宣言してそれを別の関数の中でも使える(書きかえれる)か?という意味ならポインタを使えば使えます。(他にもあった気がするけど・・・)それとも同じ”名前”の変数を使っても大丈夫か?ということなら問題ないです。その変数たちは全く関係ない変数です。状況がわからないとわかりません。pako();}みたいなのです。関数を並べる書き方に慣れれば、そっちで書けばいい話かもしれませんが。2、mainより上に宣言を書けば問題ないです。ありがとうございます。関数の中で宣言してそれを別の関数の中でも使える(書きかえれる)か?という意味ならポインタを使えば使えます。(他にもあった気がするけど・・・)それとも同じ”名前”の変数を使っても大丈夫か?ということなら問題ないです。その変数たちは全く関係ない変数です。mainより上でぽつんと宣言されています.ですが、関数が2つ以上になると(宣言やmain関数の説明が本では省略されていて)よくわからず、そのまま単に関数だけ別にmainの外に作って呼び出したりしても、その外に作った関数でエラー:変数が定義されていません、って出てしまいました。最初にmain関数で標準入力した変数データをmain以外の関数で使う場合です。9年前1.ローカル関数の定義はできないかと。ローカルクラスの静的メソッドを使えば似たようなことはできなくもないけど。0;}3.単純に関数の引数を使えばいいのではないでしょうか?ポインタでも参照渡しでも値を設定することは可能ですので。0;}でやってみたところ「;」をつけろとしつこく怒られました。0;}pako_Aの中での変化は元のaには関係ありませんが、pako_Bの中では変数aのアドレスに書き込んでるため同じ変数として扱えます。さん、返信ありがとうです。ポインタを使うなどでmain関数内で宣言した変数でも他の関数で使用可能ということですね。ポインタはよくわかってないので、頭にとめておき、慣れてきたら試してみます。ありがとうございます。0;}これなら動くのですが、このmain関数をbinary_search関数の上に持ってくると、デバッグでエラーが出ます。main関数内のsolve();の行で。main関数を一番上に持って来れないのです。上に置けるとのことですが、どうしたらいいのでしょうか?よろしくおねがいします。以下でできるはずです。プロトタイプ宣言をすることで、「こういう名前の関数がありますよー」ということを先に言っておいてあとから中身を定義することができます。9年前どうもありがとうございます。関数の型の宣言を重複してするようで少し違和感がありますが、そういう仕様なのですね。これですっきり解決しました。ところで、ついでにあと一つだけ聞きたいことがあります。プログラミングというよりアルゴリズムの質問になってしまいますが。n)となるそうですが、このlog2n(2は下付き)はどういう計算で出てきたのでしょう?下付きの2は、毎回2分する2から来ているように想像できますが、それくらいしか思いつきません。ご存知でしたら教えてください。9年前>1.main関数の中には別の関数を作れないのでしょうか?関数内関数は基本的に作れません。他言語ではサポートされているものも多数あります。>2.main関数から別の関数を呼び出す場合は、main関数は一番最後に書いて置かないと動きませんか?関数をプロトタイプ宣言すれば順番は関係有りません。>3.main関数以外に関数がある場合(例えば関数A)で、両方で使われる変数がある場合はglobal変数として?冒頭、つまり全ての関数の外で、定義しとかないとどうしても動きませんか?そうなります。>4.使っている問題集で、main関数の中最後に標準出力puts、coutがあるかと思えば、別の呼び出される関数(最後によびだされる関数)の中に標準出力が書かれていたりします。どちらでも同じですか?よく分からないので例を挙げてください。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。他言語ではサポートされているものも多数あります。関数をプロトタイプ宣言すれば順番は関係有りません。