本を参考にして、組み合わせ関数のプログラムを作成したのですが、欲しい実行結果が得られません。
どこが間違っているのか教えていただきたいです。
lang
1#include<stdio.h> 2 3int combi(int n, int r) 4{ 5 int i = 0; 6 int nk = 1; 7 int rk = 1; 8 int nr = 1; 9 10 for (i = 1; i <= n; i++); 11 { 12 nk *= i; 13 } 14 15 for (i = 1; i <= r; i++) 16 { 17 rk *= i; 18 } 19 20 for (i = 1; i <= (n - r); i++) 21 { 22 nr *= i; 23 } 24 return nk / (rk * nr); 25} 26 27int main(void) 28{ 29 int t, m; 30 31 for (t = 0; t <= 5; t++) 32 { 33 for (m = 0; m <= t; m++) 34 { 35 printf("%dC%d=%d\t", t, m, combi(t, m)); 36 } 37 printf("\n"); 38 } 39 return 0; 40} 41
以下が、実行結果です。
lang
10C0=1 21C0=2 1C1=2 32C0=1 2C1=3 2C2=1 43C0=0 3C1=2 3C2=2 3C3=0 54C0=0 4C1=0 4C2=1 4C3=0 4C4=0 65C0=0 5C1=0 5C2=0 5C3=0 5C4=0 5C5=0 7続行するには何かキーを押してください . . .
1C0=1, 1C1=1,... のようになるはずだと思うのですが…。
お願いします。
引用: C言語によるプログラミング 基礎編 第2版
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/05/26 11:07
2015/05/26 11:37
2015/05/26 11:46
2015/05/26 12:02