この間 C言語 初心者の友人に質問を受けて単純なコンビネーションの計算のコードを書いたのでそのコードを載せておきます。
#include <stdio.h> long int binomal(long int x, long int y){ long int n = x - y + 1; //xの階乗の止める場所 long int result = 0; //結果保存用変数 for(int i = x-1; i >= n; --i){ x = x*i; } for(int o = y-1; o >= 1; o--){ y = y*o; } result = x/y; return result; } int main(void) { long int input1 = 1; long int input2 = 1; long int result = 0; printf("一つ目の数字を入力してください:"); scanf("%ld", &input1); printf("二つ目の数字を入力してください:"); scanf("%ld", &input2); result = binomal(input1,input2); printf("%ld C %ld = %ld \n",input1,input2,result); }
変数の型を long int にしているのは、桁数が大きくなるためです。
現在はだいたい long int にしておくと 8バイト の数字を扱えますが、OSやPCのシステム、Cのコンパイラによっては 4バイト の時があるみたいです。
そういうときは long long int とか使ってみてください。