- ベストアンサー
C言語について分からない事
#include<time.h> #include<stdio.h> #include<stdlib.h> の意味と、 int combination(int, int); int factorial(int); の()の意味、 a[r]=combination(n, r); ←の意味、 return(factorial(n)/factorial(r)/factorial(n-r)); の()の中の意味 が分かりません。 どなたかおしえてもらえないでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#include<time.h> はシステムで用意している、time.hというヘッダファイルの内容を、コンパイル時に読み込みます。 int factorial(int); これはプロトタイプ宣言です。 factorialという関数の()内が、引数の数と型になり、コンパイル時に呼び出している部分が正しいか比較します。 a[r]=combination(n, r); combinationという関数の戻り値を、aというint型の配列変数のr番目に格納します。 return(factorial(n)/factorial(r)/factorial(n-r)); factorialに渡す引数の違いで、関数の戻り値が異なり、その値を順に割り算しています。で、その割り算の結果を、関数の戻り値として返します。
その他の回答 (4)
- brogie
- ベストアンサー率33% (131/392)
>例えば、stdio.h を読み込むことで、printf等が、利用出来るようになります。 とありますが、他の time.h stdlib.h を読み込むことで、どのようになるのでしょうか? それらのファイルをメモ帳で開くと沢山宣言してあります。 ヘッダーファイルはincludeフォルダにあります。このファイルを見るだけで、大変勉強になります。一度は誰でも覗いていますよ。 ヘッダファイルの場所がエックスプロ―ラーのツールの検索で、見つけて下さい。
お礼
アドバイスありがとうございました!!
- sssohei
- ベストアンサー率33% (33/98)
> a[r]=combination(n, r); > という所なんですが、combinationのあとの()内はどうゆう意味でしょうか? combination という関数に n, r の引数(引数→英語のパラメータという方がイメージ的にわかりやすいかも知れません)を渡すという意味です。 ()なのは文法の決まりです。 >他の time.h stdlib.h これらにも、色々な関数が用意されています。 たとえば、 time.h は時間関係のライブラリで time 関数(現在時間を取得)等が使えるように stdlib.h は標準ライブラリ(StandardLibraryの略)でrand関数やsrand関数等が使えるようになります。 それぞれのファイルには他にも色々な関数があります。C言語の参考書を調べてみてください。 本を最初から読んでいけば、まず間違いなく記述されている事柄だと思います。(わかりやすさ、詳しさは本によりけり
お礼
何度もありがとうございました! とてもわかりやすかったです。
- yusuke5111
- ベストアンサー率16% (9/55)
下記、No.2の方の#include "" 補足として、 この場合は、コンパイル時のオプションで、参照するディレクトリを指定でき、 その場所にファイルがあれば大丈夫です。
お礼
回答ありがとうございました!
- sssohei
- ベストアンサー率33% (33/98)
> #include C言語では、よく使われる関数や、便利な関数をまとめたものが「ライブラリ」として用意されています。 #include というのは、他のファイルの中身を読み込むもので、この場合、time.h, stdio.h, stdlib.h を読み込んでいます。 #include "" の場合は、ソースファイルから見た相対パスから、 #include <> の場合は、C言語のライブラリからファイルを探します。 例えば、#include "xxx.h" だったら、ソースファイルと同じフォルダにある、 xxx.h が読み込まれます。 例えば、stdio.h を読み込むことで、printf等が、利用出来るようになります。 > 残りの3点 お手元の参考書や解説書の関数の部分をお読み下さい。 > int combination(int, int); は関数の宣言 > a[r]=combination(n, r); は配列、関数の呼び出しと返り値 > return(....) は関数の呼び出しと返り値 をお読み下さい。なお、 return (....); は return ....; でも構いません。
お礼
詳しく教えていただき、ありがとうございました! また機会がありましたらお願いします!
補足
>例えば、stdio.h を読み込むことで、printf等が、利用出来るようになります。 とありますが、他の time.h stdlib.h を読み込むことで、どのようになるのでしょうか?
お礼
アドバイスありがとうございました!! とても役に立ちました! また何かありましたらお願いします!
補足
追加質問なんですが、よければ教えていただきたいです。 a[r]=combination(n, r); という所なんですが、combinationのあとの()内はどうゆう意味でしょうか?