C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
-
- 記事: 336
- 登録日時: 11年前
C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
5月に入ってからC言語の教科書(猫でもわかるC言語プログラミング)をもう一度やり直したんですが、教科書の関数の練習問題でわからなくなってしまったところがあります。ここに問題文を軽く書きます。
「添え字を引数として与えたときにフィボナッチ数を返す関数を作ってください。また、実際にこの関数を使ってnが1から30までのフィボナッチ数を表示するプログラムを作ってください。」
フィボナッチ数については練習問題のところに説明が書いてあったので大丈夫です。
この問題のヒントを教えてほしいです。答えは書かなくていいですよ。
ヒントを元に、自分で答えを導きだしますので。お願いします。
「添え字を引数として与えたときにフィボナッチ数を返す関数を作ってください。また、実際にこの関数を使ってnが1から30までのフィボナッチ数を表示するプログラムを作ってください。」
フィボナッチ数については練習問題のところに説明が書いてあったので大丈夫です。
この問題のヒントを教えてほしいです。答えは書かなくていいですよ。
ヒントを元に、自分で答えを導きだしますので。お願いします。
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
分からない点は、何でしょうか?
問題全部わからない、ってのはヒントの出しようがありません。
もしくは分かるところは何でしょうか?
こちらはソースコードで書けるところまで書いてください。
問題全部わからない、ってのはヒントの出しようがありません。
もしくは分かるところは何でしょうか?
こちらはソースコードで書けるところまで書いてください。
-
- 記事: 336
- 登録日時: 11年前
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
すみません。わからない点を書き忘れました・・。
まず、練習問題にもある「添え字を引数として与えた時にフィボナッチ数を返す関数」ってありますよね?この添え字を引数にするところの意味が良くわかりませんでした。フィボナッチ数を返すのは理解できました。関数の引数に添え字を渡したのですが、プログラミングてきにあっているのかわかりません。まだ完成してないですが、途中までのコードを載せます。 こんな感じなんですが、どうでしょうか?
まず、練習問題にもある「添え字を引数として与えた時にフィボナッチ数を返す関数」ってありますよね?この添え字を引数にするところの意味が良くわかりませんでした。フィボナッチ数を返すのは理解できました。関数の引数に添え字を渡したのですが、プログラミングてきにあっているのかわかりません。まだ完成してないですが、途中までのコードを載せます。 こんな感じなんですが、どうでしょうか?
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
こんばんは
添え字を引数として与える ですが
添え字とは 配列変数のうちのひとつの要素を指定するために使用される文字 です
つまり 10と指定するなら 10番目の数 ということになります
あってるかどうかは実際に動かしてみてはいかがでしょうか?
自分で動かさないことには自分での判断ができませんよ
添え字を引数として与える ですが
添え字とは 配列変数のうちのひとつの要素を指定するために使用される文字 です
つまり 10と指定するなら 10番目の数 ということになります
あってるかどうかは実際に動かしてみてはいかがでしょうか?
自分で動かさないことには自分での判断ができませんよ
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
まずはフィボナッチ数の代わりに正の整数の数列を返す関数を作ってみませんか?
すなわち、添え字をそのまま項の値にします。
すなわち、添え字をそのまま項の値にします。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
>添え字
例えばフィボナッチ数を
F_0 = 0
F_1 = 1
F_n = F_(n-1) + F_(n-2) (n>=2のとき)
としたら,
この問題文が言うところの「添え字」って,{ _の右側の値.0とか1とnとかで書いてるやつ.何番目の数なのかってこと }
ってだけかと.
だから,
>添え字を引数として与えたときにフィボナッチ数を返す関数を作ってください。
ってことは,
引数の値が n だったら,F_n の値を返す(例えば,引数に 5 を指定したら,F_5 の値を返す)ような関数を作れって話でしょう.
素直に読めば.
例えばフィボナッチ数を
F_0 = 0
F_1 = 1
F_n = F_(n-1) + F_(n-2) (n>=2のとき)
としたら,
この問題文が言うところの「添え字」って,{ _の右側の値.0とか1とnとかで書いてるやつ.何番目の数なのかってこと }
ってだけかと.
だから,
>添え字を引数として与えたときにフィボナッチ数を返す関数を作ってください。
ってことは,
引数の値が n だったら,F_n の値を返す(例えば,引数に 5 を指定したら,F_5 の値を返す)ような関数を作れって話でしょう.
素直に読めば.
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
具体例で考えてみましょうか。
フィボナッチ数列を求める関数に
1
2
3
4
5
の5種類の引数を与えたとき、それぞれ
どういう結果がほしいですか?
フィボナッチ数列を求める関数に
1
2
3
4
5
の5種類の引数を与えたとき、それぞれ
どういう結果がほしいですか?
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
-
- 記事: 336
- 登録日時: 11年前
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
rascalさん>>回答有難うございます。
実際に動かしてみたんですが、ダメでした。
みけCATさん>>回答有難うございます。
>フィボナッチ数の代わりに正の整数の数列を返す関数を作ってみませんか?
それもいいですが、それは後でやってもいいですか?
ちょっと練習問題の方に力を入れたいので、申し訳ないですがそれは後回しでお願いします。
すみません。
usaoさん>>回答有難うございます。
>引数の値が n だったら,F_n の値を返す(例えば,引数に 5 を指定したら,F_5 の値を返す)ような関数 >を作れって話でしょう.
なるほどそのような感じで書けばいいんですね?
>F_0 = 0
>F_1 = 1
>F_n = F_(n-1) + F_(n-2) (n>=2のとき)
>としたら,
>この問題文が言うところの「添え字」って,{ _の右側の値.0とか1とnとかで書いてるやつ.何番目の >数なのかってこと }
>ってだけかと.
フィボナッチ数ってこの練習問題の場合、そういう事だったんですね。
よみがはずれました。問題の文に説明が書いてあったので「Fn_1」←これがフィボナッチ数かとおもってました。試しにプログラムをかいてみます。
boxさん>>回答有難うございます。
こんな結果ですか?
Fn-1
Fn-2
Fn-3
Fn-4
Fn-5
合ってるかわかりませんが。
実際に動かしてみたんですが、ダメでした。
みけCATさん>>回答有難うございます。
>フィボナッチ数の代わりに正の整数の数列を返す関数を作ってみませんか?
それもいいですが、それは後でやってもいいですか?
ちょっと練習問題の方に力を入れたいので、申し訳ないですがそれは後回しでお願いします。
すみません。
usaoさん>>回答有難うございます。
>引数の値が n だったら,F_n の値を返す(例えば,引数に 5 を指定したら,F_5 の値を返す)ような関数 >を作れって話でしょう.
なるほどそのような感じで書けばいいんですね?
>F_0 = 0
>F_1 = 1
>F_n = F_(n-1) + F_(n-2) (n>=2のとき)
>としたら,
>この問題文が言うところの「添え字」って,{ _の右側の値.0とか1とnとかで書いてるやつ.何番目の >数なのかってこと }
>ってだけかと.
フィボナッチ数ってこの練習問題の場合、そういう事だったんですね。
よみがはずれました。問題の文に説明が書いてあったので「Fn_1」←これがフィボナッチ数かとおもってました。試しにプログラムをかいてみます。
boxさん>>回答有難うございます。
こんな結果ですか?
Fn-1
Fn-2
Fn-3
Fn-4
Fn-5
合ってるかわかりませんが。
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
Fn-samusu0905 さんが書きました: Fn-1
Fn-2
Fn-3
Fn-4
Fn-5
の部分が何を意味しているのかよくわかりませんが、その後に続く
1~5というのは、単にnを出力しているだけで、フィボナッチ数を出力していないですね。
私は、てっきり
引数に1を与えたら1を得る
引数に2を与えたら1を得る
引数に3を与えたら2を得る
引数に4を与えたら3を得る
引数に5を与えたら5を得る
という、フィボナッチ数列の最初の5項を得るものだとばかり思っていました。
ちなみに、引数に6~10を与えた場合、
引数に6を与えたら8を得る
引数に7を与えたら13を得る
引数に8を与えたら21を得る
引数に9を与えたら34を得る
引数に10を与えたら55を得る
ということではないんですか?だって、フィボナッチ数列ですよね。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
>実際に動かしてみたんですが、ダメでした。
どうダメだったか書かないと意味が無いですよ。何度も言ってますが。
みけCATさんの提案は、フィボナッチ数以前にこれが出来ないとフィボナッチ数も出来ませんよと言う意味ですね。
なので先にやらないと意味が無いです。
どうダメだったか書かないと意味が無いですよ。何度も言ってますが。
みけCATさんの提案は、フィボナッチ数以前にこれが出来ないとフィボナッチ数も出来ませんよと言う意味ですね。
なので先にやらないと意味が無いです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
- 記事: 336
- 登録日時: 11年前
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
boxさん>>回答有難うございます。
>ちなみに、引数に6~10を与えた場合、
>引数に6を与えたら8を得る
>引数に7を与えたら13を得る
>引数に8を与えたら21を得る
>引数に9を与えたら34を得る
>引数に10を与えたら55を得る
>ということではないんですか?だって、フィボナッチ数列ですよね。
確かにそうですが、今自分がやりたいのはフィボナッチ数を求めるということです。
フィボナッチ数列とは言ってませんよ・・。
softyaさん>>回答有難うございます。
具体的に言うと、フィボナッチ数を返すための関数を作って引数に添え字を与えたんですが、
引数に添え字を書くとエラーが発生した、ということです。
練習問題の最初の文章には「F1=1,F2=1,nが3以上のときFn=Fn-1+Fn-2で与えられる数列をフィボナッチ数列といい、各項をフィボナッチ数という。」これがNo1の文章に書いた文(添え字を引数として与えたとき)の前に書かれていた文章なのですが。
>ちなみに、引数に6~10を与えた場合、
>引数に6を与えたら8を得る
>引数に7を与えたら13を得る
>引数に8を与えたら21を得る
>引数に9を与えたら34を得る
>引数に10を与えたら55を得る
>ということではないんですか?だって、フィボナッチ数列ですよね。
確かにそうですが、今自分がやりたいのはフィボナッチ数を求めるということです。
フィボナッチ数列とは言ってませんよ・・。
softyaさん>>回答有難うございます。
具体的に言うと、フィボナッチ数を返すための関数を作って引数に添え字を与えたんですが、
引数に添え字を書くとエラーが発生した、ということです。
練習問題の最初の文章には「F1=1,F2=1,nが3以上のときFn=Fn-1+Fn-2で与えられる数列をフィボナッチ数列といい、各項をフィボナッチ数という。」これがNo1の文章に書いた文(添え字を引数として与えたとき)の前に書かれていた文章なのですが。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
> 引数に添え字を書くとエラーが発生した、ということです。
コンパイルエラーでしょうか? であればロジック以前の文法的な問題です。
先にその質問をすべきですね。
みけCATさんの提案はスルーされるということでしょうか?
コンパイルエラーでしょうか? であればロジック以前の文法的な問題です。
先にその質問をすべきですね。
みけCATさんの提案はスルーされるということでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
そういう用語の細かい使い方の違いは、この際どうでもいいです。samusu0905 さんが書きました: 確かにそうですが、今自分がやりたいのはフィボナッチ数を求めるということです。
フィボナッチ数列とは言ってませんよ・・。
要するに
フィボナッチ数列の最初の30項を出したいのだから
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
そういうへりくつをこねくり回す人には、答えを見せちゃう。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
-
- 記事: 336
- 登録日時: 11年前
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
softyaさん>>
>コンパイルエラーでしょうか? であればロジック以前の文法的な問題です。
そうですねコンパイルエラーですよ。
boxさん>>
いえそのような結果ではありません・・。
もう一度練習問題で求められている文章を書きますよ。
「フィボナッチ数を返す関数を作ってください。また、実際にこの関数を使ってnが1から30までフィボナッチ数を表示するプログラムを作ってください。」これが練習問題で問われているところです。
フィボナッチの数列ではなく数です。
多分ですが、Fn=Fn-1+Fn-2と文章には書いてあるんです。
nが1から30までのフィボナッチ数と言っているので、普通は練習問題にも書いてあるFn-1を使うべきだと思うのですが。よって、
Fn-1,Fn-2,Fn-3,Fn-4....Fn-30とこのようにしなければいけないはずなんですが。
どうでしょうか?
ごめんなさい、わざわざコードまで載せていただいているのにこんな事を言ってしまい。
>コンパイルエラーでしょうか? であればロジック以前の文法的な問題です。
そうですねコンパイルエラーですよ。
boxさん>>
いえそのような結果ではありません・・。
もう一度練習問題で求められている文章を書きますよ。
「フィボナッチ数を返す関数を作ってください。また、実際にこの関数を使ってnが1から30までフィボナッチ数を表示するプログラムを作ってください。」これが練習問題で問われているところです。
フィボナッチの数列ではなく数です。
多分ですが、Fn=Fn-1+Fn-2と文章には書いてあるんです。
nが1から30までのフィボナッチ数と言っているので、普通は練習問題にも書いてあるFn-1を使うべきだと思うのですが。よって、
Fn-1,Fn-2,Fn-3,Fn-4....Fn-30とこのようにしなければいけないはずなんですが。
どうでしょうか?
ごめんなさい、わざわざコードまで載せていただいているのにこんな事を言ってしまい。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
であれば、コンパイルエラーの出ているソースコードと、そのエラーの詳細を書いてください。samusu0905 さんが書きました:softyaさん>>
>コンパイルエラーでしょうか? であればロジック以前の文法的な問題です。
そうですねコンパイルエラーですよ。
フォーラムルールの最初に項に書いてあるとおりです。
「C言語何でも質問掲示板~規約~」
http://dixq.net/board/board.html
引用
コンパイルエラーの質問時は必ず最低限のエラーメッセージも書きましょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
- 記事: 336
- 登録日時: 11年前
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
softyaさん>>あの、そのコンパイルエラーを書く前に一つ質問なんですが。
関数に引数int 30とか数だけを与えることってできませんよね?
実は自分が書いてコンパイルエラーが発生したのは引数にint 30と書いたからなんです。
「')' が必要です,')'が定義の前にありません,';'が '{'の前にありません」
これがコンパイルエラーです。
関数に引数int 30とか数だけを与えることってできませんよね?
実は自分が書いてコンパイルエラーが発生したのは引数にint 30と書いたからなんです。
「')' が必要です,')'が定義の前にありません,';'が '{'の前にありません」
これがコンパイルエラーです。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
仮引数には式を書くことが出来ます。
式は、単なる数値だけの定数も含みます。
仮引数の式に型を書いたら文法エラーです。
これは、正確なソースコードやエラーメッセージの行が書かれていないので推測に過ぎません。
時間の無駄だと思いますので、毎回、正確な情報を頂ければと思います。
何度も言っているように初心者には必要な情報の徒手選択が困難です。
ベストは、情報を出来るだけ正確に漏らさず報告していただくことです。
式は、単なる数値だけの定数も含みます。
仮引数の式に型を書いたら文法エラーです。
これは、正確なソースコードやエラーメッセージの行が書かれていないので推測に過ぎません。
時間の無駄だと思いますので、毎回、正確な情報を頂ければと思います。
何度も言っているように初心者には必要な情報の徒手選択が困難です。
ベストは、情報を出来るだけ正確に漏らさず報告していただくことです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
こんにちわ
えっとフィポナッチ数と数列の違いはなんでしょう? 検索してみましたがboxさんがおっしゃってることであってると
思うのですが・・・。
関数の作り方から勉強したほうがいいですね
関数の宣言は以下の書式で行います
[関数の型] 関数名( 引数の型 [,...]);
例
のような形で呼び出します
また関数をさきに宣言せず呼び出そうとするとコンパイルエラーになります
えっとフィポナッチ数と数列の違いはなんでしょう? 検索してみましたがboxさんがおっしゃってることであってると
思うのですが・・・。
関数の作り方から勉強したほうがいいですね
関数の宣言は以下の書式で行います
[関数の型] 関数名( 引数の型 [,...]);
例
test1();
char itoc(int);
float rmap1(int);
float test(int, char);
char * string();
で これらの関数を呼び出すときの記述は
test1();
int x;
char b;
itoc(x);
rmap1(x);
test(x, b);
また関数をさきに宣言せず呼び出そうとするとコンパイルエラーになります
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
では、どういう結果がほしいのか、コンピューターを使わなくてもいいですから具体的に書いてみてください。samusu0905 さんが書きました: boxさん>>
いえそのような結果ではありません・・。
当方が書いたfibという関数が、それに相当します。samusu0905 さんが書きました: フィボナッチ数を返す関数を作ってください。
いったんコンピューターから離れて、「nが1から30まで『フィボナッチ数』を表示するという部分をsamusu0905 さんが書きました: また、実際にこの関数を使ってnが1から30までフィボナッチ数を表示するプログラムを作ってください。
手で書いてみてください。
繰り返します。表示するのは『フィボナッチ数』です。
1, 2, 3, 4, 5... というような連番『ではありません』。
Fn-1, Fn-2, Fn-3, ... というような記号列『でもありません』。
フィボナッチ数という、具体的な『数値』です。
最後に編集したユーザー box on 2014年5月15日(木) 15:46 [ 編集 1 回目 ]
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
-
- 記事: 336
- 登録日時: 11年前
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
rascalさん>>ではboxさんのプログラムが正しいということで宜しいですね?
>関数の作り方から勉強したほうがいいですね
関数の作り方は今のところ大丈夫ですけど。
boxさん>>では、問題の文書に書かれていた「Fn=Fn-1+Fn-2」の中でFnがフィボナッチ数でことですね?
失礼しました。自分の勘違いで・・。てっきりFn-1がフィボナッチ数かと思ってました。
昨日この関数の練習問題をやっていたもので、よくわからなかったのでboxさんのプログラムがあっているのか分かりませんでした・・。では、実際にこちらでも試しに書いてみます。
>関数の作り方から勉強したほうがいいですね
関数の作り方は今のところ大丈夫ですけど。
boxさん>>では、問題の文書に書かれていた「Fn=Fn-1+Fn-2」の中でFnがフィボナッチ数でことですね?
失礼しました。自分の勘違いで・・。てっきりFn-1がフィボナッチ数かと思ってました。
昨日この関数の練習問題をやっていたもので、よくわからなかったのでboxさんのプログラムがあっているのか分かりませんでした・・。では、実際にこちらでも試しに書いてみます。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
コンパイルエラーが出ている時点で大丈夫じゃないと思います。samusu0905 さんが書きました:rascalさん>>ではboxさんのプログラムが正しいということで宜しいですね?
>関数の作り方から勉強したほうがいいですね
関数の作り方は今のところ大丈夫ですけど。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
- 記事: 336
- 登録日時: 11年前
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
boxさん>>失礼しました・・。boxさんが正しかったです。今、フィボナッチ数について自分も検索しました。 boxさんのプログラムはあってました・・。大変ご迷惑をお掛けしました。
softyaさん>>自分のちょっとしたミスです。
softyaさん>>自分のちょっとしたミスです。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
ミスが直ったコードを投稿してくださいね。samusu0905 さんが書きました:boxさん>>失礼しました・・。boxさんが正しかったです。今、フィボナッチ数について自分も検索しました。 boxさんのプログラムはあってました・・。大変ご迷惑をお掛けしました。
softyaさん>>自分のちょっとしたミスです。
それをベースに皆さんが進めると思いますので。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
Fn-1もフィボナッチ数です。samusu0905 さんが書きました: 失礼しました。自分の勘違いで・・。てっきりFn-1がフィボナッチ数かと思ってました。
「フィボナッチ数の定義については大丈夫です」とおっしゃっている質問者さんには
釈迦に説法かもしれませんが、フィボナッチ数の定義は、
最初の2個を1とする。
3個目以降は、直前の2個の合計とする。ここを数式で書いたのが、Fn = Fn-1 + Fn-2ということです。
この漸化式を満たすFnもFn-1もFn-2も、フィボナッチ数列を構成する要素です。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
プログラムの動作があってるかはともかく samusu0905さんのコードでは19行目が明らかにおかしいです
なので関数の作り方の説明をしました
関数の記述があっていればソフト屋さんのおっしゃってる通りコンパイルエラーは出ないはずです
動作もあってないですがこれはsamusu0905さんがフィポナッチ数について勘違いしたとのことなので触れないでおきます
なので関数の作り方の説明をしました
関数の記述があっていればソフト屋さんのおっしゃってる通りコンパイルエラーは出ないはずです
動作もあってないですがこれはsamusu0905さんがフィポナッチ数について勘違いしたとのことなので触れないでおきます
-
- 記事: 336
- 登録日時: 11年前
Re: C言語の教科書で少し分からないところが出てきたのでトピックに載せます。
皆さんの言った通りですね。私がフィボナッチ数について勘違いをしてました。
boxさんのプログラムを少し形を変えてプログラムを変えました。
こんな感じですね。これがboxさんのプログラムの形を少し変えたコードです。
フィボナッチ数と数列についてはよく理解できました。
この問題に関してはもう大丈夫です。納得がいきました。
皆さん、フィボナッチ数と数列について教えていただき有難うございました!
boxさんのプログラムを少し形を変えてプログラムを変えました。
#include <stdio.h>
int Fib(int );
int main(void){
int b;
b=0;
for( int n=1; n<=30; n++)
{
printf("n = %d\n", Fib(n));
}
while(b == 0)
{
printf("終了する場合,0を選択してEnter---");
getchar();
return 0;
}
return 0;
}
int Fib(int n)
{
if( n == 1 || n == 2)
{
return 1;
}
else
{
return Fib(n-1)+ Fib(n-2);
}
}
フィボナッチ数と数列についてはよく理解できました。
この問題に関してはもう大丈夫です。納得がいきました。
皆さん、フィボナッチ数と数列について教えていただき有難うございました!