組み合わせについて

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

組み合わせについて

#1

投稿記事 by タピオカ » 8年前

今c言語を学んでいる初心者です。
参考書で習ったことを活用し1C1から10C10までの組み合わせを求めようとしているのですが、2C2のところで2と表示されてしまいます。どこを改善したらいいのでしょうか。求め方はnCr=n!/{r!・(n-r)!}を使っています。まだ勉強し始めたばっかりなので読みにくいところがあると思いますがどうぞ宜しくお願い致します。
以下ソースコード↓

コード:

//組み合わせ

#include<stdio.h>

int combination(int, int);

int main()
{
	int a, b;
	int c = 1;

	for (a = 1; a <= 10; a++) {                    //何個から選ぶか
		for(b=1;a>=b;b++){            //取り出す個数
			c = combination(a,b);
			printf("%dC%d=%d\n", a, b, c);    //表示する
			
		}
	}
	return 0;
}

int combination(int a, int b)          //組み合わせを求める
{
	int i,k,l;
	int fact = 1;
	int lie = 1;
	int bit = 1;
	
	

	for (i = 1; i <= a; i++) {         //上の階乗
		fact = fact*i;
	}
	for (k = 1; k <= b; b++) {         //下の階乗
		lie = lie*k;
	}
	if (a>b) {                 //下の階乗
		for (l = 1; l <= (a - b); l++) {
			bit = bit*l;
		}
	}
	else {
		bit = 1;
	}
	
	return (fact / (lie*bit));
}

タピオカ

Re: 組み合わせについて

#2

投稿記事 by タピオカ » 8年前

すみません。プログラムが実行できなかったのは一か所変数を書き間違えていたからのようです。ご迷惑をおかけしました。以後、気を付けます。

閉鎖

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