関数を用いるプログラム

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ぁぃ

関数を用いるプログラム

#1

投稿記事 by ぁぃ » 18年前

初めまして、大学の課題で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:関数を用いるプログラム

#2

投稿記事 by 管理人 » 18年前

C言語が全くわからないと言うことですが、どの辺まで理解してらっしゃいますか?
条件文は解るとか、関数の作り方や返り値の意味は理解しているとか、教えていただかないとどこからお伝えすればいいのかわかりませんので。

バグ

Re:関数を用いるプログラム

#3

投稿記事 by バグ » 18年前

授業ではどこまで習っていますか?
また、習っていても分からないというのであれば、どこまで分かっていて、どこからが分からないですか?

課題を見る限りでは、変数、分岐、繰り返し、関数…辺りまでは習っているようですけど…どうでしょう?


それから…

>>(1)-5~10の整数について、階乗を計算して表示する
>>(2)10個から5個を選ぶ順列の総数(10P5)を計算して表示する
>>(3)10個から3個を選ぶ組み合わせ総数(10C3)を計算して表示する

この3つ、プログラム上ではなくて、自分の頭の中で計算して答えを求めるまでの流れは分かっていますか?
分かるようならば、書き込みしてみてください。もし、分からないようであれば課題を出した人へ質問しに行きましょう。

ぁぃ

Re:関数を用いるプログラム

#4

投稿記事 by ぁぃ » 18年前

>>管理人さん

#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:関数を用いるプログラム

#5

投稿記事 by ぁぃ » 18年前

>>バクさん

はい、変数、分岐、繰り返し、関数…辺りまで・・・その通りです。
(1)はいまいちわかりませんが、
(2)は、10P5 = 10*9*8*7*6 = 30240
(3)は、10C3 =分数計算より、120

こういう事でしょうか?

box

Re:関数を用いるプログラム

#6

投稿記事 by box » 18年前

順列と組合せの数を求める一般式の中に、
階乗の計算を含みます。
一般式について、ネット上で探したり高校の数学の教科書を
読み返したりしてみてください。

課題(1)で、階乗を計算する関数が出来上がれば、
課題(2)と(3)ではその関数を使うことになります。

というわけで、まずは課題(1)に全力を注いでください。

完成したコードを示すことは簡単ですが、
それではご自身のためにならないので控えておきます。

バグ

Re:関数を用いるプログラム

#7

投稿記事 by バグ » 18年前

例えば、ぁぃさんの書かれたプログラムの引き算の部分を関数にすると、こんな感じになります。
#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:関数を用いるプログラム

#8

投稿記事 by 管理人 » 18年前

まず、
http://www5c.biglobe.ne.jp/~ecb/c/c00.html
こちらの7章までの内容を熟読して理解してからの方が早いと思います。
示されたコードなどを見てもわからないまま見ているだけではそちらの方が理解が遅いと思います。
書いてある内容を読んでそのつどコンパイルしながら確認していってください。

閉鎖

“C言語何でも質問掲示板” へ戻る