前提・実現したいこと
多倍長数を用いて1!から40!までを計算したいです。
発生している問題・エラーメッセージ
アボートになってしまう
該当のソースコード C
#include <stdio.h> #define KETA 50 void kakeru(int a[], int n, int k){ int i, tmp; int carry = 0; for(i=KETA-1; i>=0; i--){ tmp = a[i] * k + carry; a[i] = tmp % 10; carry = tmp / 10; } return; } void set(int value, int a[], int n){ int i; for(i=n-1; i>=0; i--){ a[i] = value % 10; value = value / 10; } return; } void print(int a[], int n){ int i =0; while (a[i]==0 && i<=n-2){ i++; } while (i<n){ printf("%d", a[i]); i++; } printf("\n"); } int main(void){ int i; int a[KETA]; a[KETA] = 1; for(i=1; i<=40; i++){ a[i] = a[i] * i; } kakeru(a, KETA, i); printf("%d! = %d", i, a[i]); return 0; }
試したこと
計算に必要な関数は書けたのですがmain内のfor以下での関数の使い方がよくわからないです。
回答3件
あなたの回答
tips
プレビュー