###実現したいこと
double型でパスカルの三角形を表したい
1.00 1.00 0.00 1.00 1.00 1.00
上記は間違いで
1.00 1.00 1.00 1.00 2.00 1.00
になるようにしたい。
###コード
C
1#include<stdio.h> 2#define N 3 3int main(void) 4{ 5 int i,j; 6 double p[N][N]; 7 8 p[0][0]=1.0; 9 //パスカルの三角形 10 for(i=1;i<N;i++){ 11 p[i][0]=1.0; 12 for(j=1;j<i;j++){ 13 p[i][j]=p[i-1][j-1]+p[i-1][j]; 14 p[i][i]=1.0; 15 } 16 } 17 18 //表示 19 for(i=0;i<N;i++){ 20 for(j=0;j<=i;j++){ 21 printf("%.2f ",p[i][j]); 22 } 23 printf("\n"); 24 } 25 26 return 0; 27}
###int型のとき
下記のプログラムはうまく実行できました。
C
1#include<stdio.h> 2#define N 3 3int main(void) 4{ 5 int i,j; 6 int p[N][N]; 7 8 p[0][0]=1; 9 for(i=1;i<N;i++){ 10 p[i][0]=1; 11 for(j=1;j<i;j++){ 12 p[i][j]=p[i-1][j-1]+p[i-1][j]; 13 p[i][i]=1; 14 } 15 } 16 17 for(i=0;i<N;i++){ 18 for(j=0;j<=i;j++){ 19 printf("%d ",p[i][j]); 20 } 21 printf("\n"); 22 } 23 24 return 0; 25}
実行結果は下記です
1 1 1 1 2 1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/17 11:40