初めまして、大学の課題でC言語が出てましてわからないので質問させてください。
課題
関数factは、整数nを引数として以下のようにnの階乗(n!= 1x2x…xn)
を計算して戻す関数とする。
①nが1以上のとき⇒n!を返す
②nが0のとき ⇒1を返す(0!は1)
③nが負の値のとき⇒ー99を返す(エラーを知らせるため)
(関数のプロトタイプ宣言 int fact (int n) ;)
関数factを用いて、以下の(1)~(3)を実行する@プログラムを作成しなさい。
(1)-5~10の整数について、階乗を計算して表示する
(2)10個から5個を選ぶ順列の総数(10P5)を計算して表示する
(3)10個から3個を選ぶ組み合わせ総数(10C3)を計算して表示する
C言語が全くわからないのですが、このような課題を出されて困ってます。
もうすぐ提出なのに・・・。
宜しければ教えてください。
フローチャートも書かなくてはいけなくて・・・。
関数を用いるプログラム
Re:関数を用いるプログラム
C言語が全くわからないと言うことですが、どの辺まで理解してらっしゃいますか?
条件文は解るとか、関数の作り方や返り値の意味は理解しているとか、教えていただかないとどこからお伝えすればいいのかわかりませんので。
条件文は解るとか、関数の作り方や返り値の意味は理解しているとか、教えていただかないとどこからお伝えすればいいのかわかりませんので。
Re:関数を用いるプログラム
授業ではどこまで習っていますか?
また、習っていても分からないというのであれば、どこまで分かっていて、どこからが分からないですか?
課題を見る限りでは、変数、分岐、繰り返し、関数…辺りまでは習っているようですけど…どうでしょう?
それから…
>>(1)-5~10の整数について、階乗を計算して表示する
>>(2)10個から5個を選ぶ順列の総数(10P5)を計算して表示する
>>(3)10個から3個を選ぶ組み合わせ総数(10C3)を計算して表示する
この3つ、プログラム上ではなくて、自分の頭の中で計算して答えを求めるまでの流れは分かっていますか?
分かるようならば、書き込みしてみてください。もし、分からないようであれば課題を出した人へ質問しに行きましょう。
また、習っていても分からないというのであれば、どこまで分かっていて、どこからが分からないですか?
課題を見る限りでは、変数、分岐、繰り返し、関数…辺りまでは習っているようですけど…どうでしょう?
それから…
>>(1)-5~10の整数について、階乗を計算して表示する
>>(2)10個から5個を選ぶ順列の総数(10P5)を計算して表示する
>>(3)10個から3個を選ぶ組み合わせ総数(10C3)を計算して表示する
この3つ、プログラム上ではなくて、自分の頭の中で計算して答えを求めるまでの流れは分かっていますか?
分かるようならば、書き込みしてみてください。もし、分からないようであれば課題を出した人へ質問しに行きましょう。
Re:関数を用いるプログラム
>>管理人さん
#include<stadio.h>
main()
{
この中に色々と入れる
}
くらいしかわかってません。
唯一わかるのは、【変数a = 10, b = 7のとき、 C = a - bを出力するプログラム】の作成です。
#include<stadio.h>
main(void)
{
int a,b,c;
a = 10;
b = 7;
c = a - b;
printf("%d - %d = %d\n" ,a,b,c);
}
となる事くらいです。
printf("")の""の中には、全角の文字を入れても良い。
main()ろmain(void)は同じ意味。
このような基本的な事しかわかってません・・・。
#include<stadio.h>
main()
{
この中に色々と入れる
}
くらいしかわかってません。
唯一わかるのは、【変数a = 10, b = 7のとき、 C = a - bを出力するプログラム】の作成です。
#include<stadio.h>
main(void)
{
int a,b,c;
a = 10;
b = 7;
c = a - b;
printf("%d - %d = %d\n" ,a,b,c);
}
となる事くらいです。
printf("")の""の中には、全角の文字を入れても良い。
main()ろmain(void)は同じ意味。
このような基本的な事しかわかってません・・・。
Re:関数を用いるプログラム
>>バクさん
はい、変数、分岐、繰り返し、関数…辺りまで・・・その通りです。
(1)はいまいちわかりませんが、
(2)は、10P5 = 10*9*8*7*6 = 30240
(3)は、10C3 =分数計算より、120
こういう事でしょうか?
はい、変数、分岐、繰り返し、関数…辺りまで・・・その通りです。
(1)はいまいちわかりませんが、
(2)は、10P5 = 10*9*8*7*6 = 30240
(3)は、10C3 =分数計算より、120
こういう事でしょうか?
Re:関数を用いるプログラム
順列と組合せの数を求める一般式の中に、
階乗の計算を含みます。
一般式について、ネット上で探したり高校の数学の教科書を
読み返したりしてみてください。
課題(1)で、階乗を計算する関数が出来上がれば、
課題(2)と(3)ではその関数を使うことになります。
というわけで、まずは課題(1)に全力を注いでください。
完成したコードを示すことは簡単ですが、
それではご自身のためにならないので控えておきます。
階乗の計算を含みます。
一般式について、ネット上で探したり高校の数学の教科書を
読み返したりしてみてください。
課題(1)で、階乗を計算する関数が出来上がれば、
課題(2)と(3)ではその関数を使うことになります。
というわけで、まずは課題(1)に全力を注いでください。
完成したコードを示すことは簡単ですが、
それではご自身のためにならないので控えておきます。
Re:関数を用いるプログラム
例えば、ぁぃさんの書かれたプログラムの引き算の部分を関数にすると、こんな感じになります。
#include<stdio.h> int hikizan(int a, int b) { return (a - b); } void main(void) { int a, b, c; a = 10; b = 7; c = hikizan(a, b); printf("%d - %d = %d\n", a, b, c); }こういう関数の使い方は、なんとなく分かりますか?
Re:関数を用いるプログラム
まず、
http://www5c.biglobe.ne.jp/~ecb/c/c00.html
こちらの7章までの内容を熟読して理解してからの方が早いと思います。
示されたコードなどを見てもわからないまま見ているだけではそちらの方が理解が遅いと思います。
書いてある内容を読んでそのつどコンパイルしながら確認していってください。
http://www5c.biglobe.ne.jp/~ecb/c/c00.html
こちらの7章までの内容を熟読して理解してからの方が早いと思います。
示されたコードなどを見てもわからないまま見ているだけではそちらの方が理解が遅いと思います。
書いてある内容を読んでそのつどコンパイルしながら確認していってください。