パスカル・トライアングルを作成するためのプログラムを作成しました。数字(行)> 5の入力に対しては、ncr> 10の整列問題があります。 私はプログラムの出力のための画像を含んでいます。パスカル・トレイルの数字の正しい整列
#include<stdio.h>
int factorial(int number)
{
int fact=1;
for(int i=1; i<=number; ++i)
{
fact*=i;
}
return fact;
}
int ncr(int n, int r)
{
int ncr;
int fact1=factorial(n);
int fact2=factorial(n-r);
int fact3=factorial(r);
ncr = fact1 /(fact2 * fact3);
return ncr;
}
int main()
{
int rows;
printf("enter the number of rows :\n");
scanf("%d",&rows);
for(int n=0; n<rows; n++)
{
for(int i=1; i<=rows-n; i++)
{
printf(" ");
}
for(int r=0; r<=n; r++)
{
printf("%d ",ncr(n,r));
}
printf("\n");
}
return 0;
}
空白と[printf'](http://en.cppreference.com/w/c/io/fprintf)形式の修飾子(フィールドの幅や配置など)を試してみてください。 –
ヒント:値を行列に格納するので、線の数をあらかじめ計算して、印刷結果を整列させることができます。 – LPs
'ncr'関数は入力値> 10で簡単にオーバーフローすることがあります。 – mch