#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)); の()の中の意味

     が分かりません。
     どなたかおしえてもらえないでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (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に渡す引数の違いで、関数の戻り値が異なり、その値を順に割り算しています。で、その割り算の結果を、関数の戻り値として返します。

この回答への補足

追加質問なんですが、よければ教えていただきたいです。

a[r]=combination(n, r);    
という所なんですが、combinationのあとの()内はどうゆう意味でしょうか?

補足日時:2002/01/16 22:17
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました!!
とても役に立ちました!
また何かありましたらお願いします!

お礼日時:2002/01/22 15:19

>例えば、stdio.h を読み込むことで、printf等が、利用出来るようになります。



とありますが、他の time.h stdlib.h を読み込むことで、どのようになるのでしょうか?

それらのファイルをメモ帳で開くと沢山宣言してあります。
ヘッダーファイルはincludeフォルダにあります。このファイルを見るだけで、大変勉強になります。一度は誰でも覗いていますよ。

ヘッダファイルの場所がエックスプロ―ラーのツールの検索で、見つけて下さい。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました!!

お礼日時:2002/01/22 15:23

> a[r]=combination(n, r);    


> という所なんですが、combinationのあとの()内はどうゆう意味でしょうか?
combination という関数に n, r の引数(引数→英語のパラメータという方がイメージ的にわかりやすいかも知れません)を渡すという意味です。
()なのは文法の決まりです。

>他の time.h stdlib.h
これらにも、色々な関数が用意されています。
たとえば、
time.h  は時間関係のライブラリで time 関数(現在時間を取得)等が使えるように
stdlib.h は標準ライブラリ(StandardLibraryの略)でrand関数やsrand関数等が使えるようになります。

それぞれのファイルには他にも色々な関数があります。C言語の参考書を調べてみてください。

本を最初から読んでいけば、まず間違いなく記述されている事柄だと思います。(わかりやすさ、詳しさは本によりけり
    • good
    • 0
この回答へのお礼

何度もありがとうございました!
とてもわかりやすかったです。

お礼日時:2002/01/22 15:23

下記、No.2の方の#include "" 補足として、



この場合は、コンパイル時のオプションで、参照するディレクトリを指定でき、
その場所にファイルがあれば大丈夫です。
    • good
    • 0
この回答へのお礼

回答ありがとうございました!

お礼日時:2002/01/22 15:21

> #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 を読み込むことで、どのようになるのでしょうか?

補足日時:2002/01/16 22:21
    • good
    • 0
この回答へのお礼

詳しく教えていただき、ありがとうございました!
また機会がありましたらお願いします!

お礼日時:2002/01/22 15:20

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q刑法の『者』の読み方

大学の刑法の授業で、例えば「人を殺したる者は…、」という条文の『者』は、人ではなく行為を意味するものだから、「もの」ではなく「しゃ」と読む、と学者は言っていたのですが、
ほんとうにその読み方でいいのですか?
常識はずれで不自然な読み方だと思うのですが。

Aベストアンサー

法律上は規定なし。
法学上(講学上)通説や多数説、有力説か如何かは知らないが、社会科学に絶対的正解など存在しないので其の学者の支持する説はそうであると言う事です。

QC言語のプログラムで#includeを使わず#includeだけで

C言語のプログラムで#include<math.h>を使わず#include<stdio.h>だけで√(sqrt)を表現することは可能でしょうか?

Aベストアンサー

ご自分で sqrt 関数を作れば可能です。
こんな感じでしょうか。

#include <stdio.h>

static double
sqrt (double s)
{
 double x = s / 2.0;
 double last_x = 0.0;

 while (x != last_x)
 {
  last_x = x;
  x = (x + s / x) / 2.0;
 }

 return (x);
}

int
main (int argc, char * argv[])
{
 printf ("sqrt (%f) = %f\n", 3.0, sqrt (3.0));
}

Q松川事件の容疑者(判決無罪)の浜崎二雄さんの読み方を雄教えてください

松川事件の容疑者(判決無罪)の浜崎二雄さんの読み方を雄教えてください

Aベストアンサー

#1です。詳細が揃いましたので、改めて回答します。

名前の読み方は、
『バマザキ フタオ』
さんでした。

出典は、

タイトル:松川15年・真実の勝利の為に
出版社:労働旬報社
出版年数:昭和39年8月
読み仮名記載ページ:44ページ

【補足】

1,現在、労働旬報社は「旬報社」に改称
2,上記の本は現在絶版ですが、復刻版として事件50年目に復刻。しかし流通してない為、現物がご希望の場合には松川事件研究の福島大学・伊部(イベ)教授までお問い合わせ下さい。

イベ先生の連絡先電話番号は、このサイトの性質上ここに記載出来ませんのでご理解下さい。

大変申し訳ありませんでした、頑張って下さい。

Q#include

#include <stdio.h>

struct st
{
char a[3];
short b;
char c[7];
long d;
char e[5];
};

int main(void)
{
printf("%d\n",sizeof(struct st));
return 0;
}

コンパイルオプションでアライメントを変化させながら(1,2,4,…)
sizeof(struct st)の変化を見たいのですが、コンパイルする時に
どのようにすれば良いのでしょうか?当方、gccを使用しております。

あと、ついでなんですが、警告オプションは-Wと-Wallしかないのでしょうか?

Aベストアンサー

GCCのマニュアル
http://gcc.gnu.org/onlinedocs/index.html
日本語訳は古いバージョンのしか見つからなかった。

> アライメントを変化させながら
http://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html#Variable-Attributes

コンパイラオプションでやるなら、-Dでマクロを使うなりして。
インテルプロセッサだと
http://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options

> -mpreferred-stack-boundary=num
> -mincoming-stack-boundary=num
というあたりも関係あるかも

>警告オプションは-Wと-Wallしかないのでしょうか
http://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc/Warning-Options.html#Warning-Options

GCCのマニュアル
http://gcc.gnu.org/onlinedocs/index.html
日本語訳は古いバージョンのしか見つからなかった。

> アライメントを変化させながら
http://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html#Variable-Attributes

コンパイラオプションでやるなら、-Dでマクロを使うなりして。
インテルプロセッサだと
http://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options

> -mpreferred-stack-boundary=num
> -mincoming-stack-boundary=num
とい...続きを読む

Q「岸壁の母」の作曲者、平川浪竜の名前の読み方を教えて!

「岸壁の母」の作曲者、平川浪竜の名前の読み方を教えてください。

Aベストアンサー

さっき実家の祖母に電話して聞いたところ、「ひらかわ・なみりゅう」さんとのことです。
ちなみにこちらでも調べましたのでご参考に。1928年10月10日の神奈川県生まれの方だそうです。

Q#include

#include <stdio.h>の <> の意味と
#include "xxxxx.h"の "" の意味を教えてください。

Aベストアンサー

厳密な定義を、「JIS X3010:2003 - 6.10.2 ソースファイル取り込み」から引用します。

---- 引用ここから ----
制約 #include指令は, 処理系で処理可能なヘッダ又はソースファイルを識別しなければならない。
意味規則 次の形式の前処理指令
    # include <h文字列> 改行
は, 処理系定義の場所を順に探索して, <区切り記号と>区切り記号の間で指定した文字列で一意に決まるヘッダを見つけ, そのヘッダの内容全体でこの指令を置き換える。どのようにして探索の場所を指定するか, またどのようにしてヘッダを識別するかは, 処理系定義とする。
 次の形式
    # include "q文字列" 改行
は, 二つの"区切り文字の間で指定した文字列で一意に決まるソースファイルの内容全体で, この指令を置き換える。指定したソースファイルの探索順序は処理系定義とする。この探索をサポートしていない場合, 又は探索が失敗した場合, 同じ文字列(もしあれば>文字を含めて)を含む次の知れに読み替えたのと同じ規則で再処理する。
    # include <h文字列> 改行
---- 引用ここまで ----

要するに、<xxx>の場合は処理系定義のヘッダ(ファイルとは限らない)を取り込み、"xxx"の場合はソースファイルを取り込むということです。いずれも探索場所やその順序は処理系定義です。

よくある誤解は、
・ヘッダは必ずファイルである。
・"xxx"ではカレントディレクトリや取り込もうとしたファイルと同じディレクトリから探索を始める。
といったものです。このように実装されている処理系が多いことは確かですが、標準規格ではそのような規定はありません。
使用している処理系がどのような実装になっているかは、マニュアルに記載があるかと思います。

厳密な定義を、「JIS X3010:2003 - 6.10.2 ソースファイル取り込み」から引用します。

---- 引用ここから ----
制約 #include指令は, 処理系で処理可能なヘッダ又はソースファイルを識別しなければならない。
意味規則 次の形式の前処理指令
    # include <h文字列> 改行
は, 処理系定義の場所を順に探索して, <区切り記号と>区切り記号の間で指定した文字列で一意に決まるヘッダを見つけ, そのヘッダの内容全体でこの指令を置き換える。どのようにして探索の場所を指定するか, またどのようにして...続きを読む

Q「支払者」読み方についてご教授ください。

お世話になります。日本語の学生の純です。

下記言葉どう読みますか。
「支払者」しはらいしゃですかしはらいものですか。
もし両方の読み方正しいなら、どの場合どう読めば良いか教えていただけますか。

よろしくお願いします。
学生 純

Aベストアンサー

こんばんは。

「しはらいしゃ」です。

「者」を「もの」と読む言葉はたくさんあります。
A「しゃ」と読むのが正しい言葉
B「もの」と読みのが正しい言葉

Bのパターンは、その人を見下げている場合が多いです。
(「働き者」(はたらきもの)のように、良い意味で使う場合もありますが。)

ご参考に。

Q   #include

   #include<stdio.h>
#include<math.h>

int main(void)
{
int i,n,limit;
printf("data? ");
scanf("%d",&n);
i(n>=2){
limit=int)sqrt(n);
for(i=limit;i1;i--){
if(n%i==0)
break;
}
if(i==1)
printf("素数\n);
else
printf("素数でない\n");
}
return 0;
}

というプログラムがあるのですが、それを改良して int型(符号付32ビット整数)および、unsigned int型(符号なし32ビット整数)のそれぞれの最大の素数を求めよという問題があり、ただし、エラトステネスのふるいは使わずに、上のプログラムを改良してみよという問題がどっかにあったんですが、全然わからないので、教えてください。

   #include<stdio.h>
#include<math.h>

int main(void)
{
int i,n,limit;
printf("data? ");
scanf("%d",&n);
i(n>=2){
limit=int)sqrt(n);
for(i=limit;i1;i--){
if(n%i==0)
break;
}
if(i==1)
printf("素数\n);
else
printf("素数でない\n");
...続きを読む

Aベストアンサー

最初に。
このプログラム、ところどころ打ち間違いがあります。直しておきましょう。
i(n>=2){
limit=(int)sqrt(n);
for(i=limit;i>=1;i--){

まず、プログラムを、機能ごとに分けて考えます。

printf("data? ");
scanf("%d",&n);
が素数判定する数値nを決めるところ

if(n>=2){
から return 0 ; の前の
}
までがn が素数かの判定しているところ
です。

では、改造に入ります。
intの範囲での最大の素数、ということなので、 intの最大値 から順番に素数判定を行い、最初に見つかった素数が、求める値、となります。

元はnをキーボードから入力しています。
これをキーボード入力ではなく、プログラム中で「intの最大値 から順番に」するには、どうしたらいいと思いますか?

元の判定部は
if(i==1)
printf("素数\n);
else
printf("素数でない\n");
です。これは n に対して「素数/素数でない」と表示されます。
改造するときに
・「素数でない」という表示は必要でしょうか?
・「素数」という表示ではnはわかりません。 nも表示するにはどうしたらいいと思いますか?
・素数が見つかったら、ループを抜けないと、int型の全ての素数を表示するプログラムになってしまいます。ループを抜けるにはどうしたらよいでしょうか?

以上の考えかたで、改造できると思いますが、いかがでしょうか。

unsigned int版へは次の2点を変更します。
・計算に使う変数はunsigned intにする必要がある。
・nはunsigned intの最大値から順番に

最初に。
このプログラム、ところどころ打ち間違いがあります。直しておきましょう。
i(n>=2){
limit=(int)sqrt(n);
for(i=limit;i>=1;i--){

まず、プログラムを、機能ごとに分けて考えます。

printf("data? ");
scanf("%d",&n);
が素数判定する数値nを決めるところ

if(n>=2){
から return 0 ; の前の
}
までがn が素数かの判定しているところ
です。

では、改造に入ります。
intの範囲での最大の素数、ということなので、 intの最大値 から順番に素数判定を行い、最初に見つかった素数が...続きを読む

Q被保険者の読み方

被保険者の読み方は、「ひほけんじゃ」ですか?「ひほけんしゃ」ですか?
また、介護保険での被保険者証は、「ひほけんじゃしょう」ですか?「ひほけんしゃしょう」ですか?

Aベストアンサー

追記から

介護も国保も後期高齢者医療保険も
全て「保険者」です。
読みは「ほけんしゃ」です。

Q"stdio.h"との違い

"stdio.h"と<stdio.h>の違いについて教えていただけないでしょうか?
両方とも同じと考えているのですが正しいでしょうか?

教えていただけないでしょうか?よろしくお願いします。

Aベストアンサー

>両方とも同じと考えているのですが正しいでしょうか?

一部で正しい…でしょうか…。

「include 検索順」で見つかるページです。
http://www2.ocn.ne.jp/~cbmaho/homepage/vc/Help/include.htm

#include <~>
だと、カレントパスは見てくれない…か?
となると、2つ前の質問での
#include <stdafx.h>
はほぼ確実に失敗でしょうかねぇ…。


人気Q&Aランキング

おすすめ情報