[問題] 不知哪寫錯了@ @||| 巴斯卡三角形
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
dev cpp
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
no
問題(Question):
基本的巴斯卡三角形輸出
餵入的資料(Input):
n,由scanf輸入
預期的正確結果(Expected Output):
輸出巴斯卡三角形
錯誤結果(Wrong Output):
一旦n超過10 就會產生如下圖的結果
http://0rz.tw/ETxB5
單獨測試階乘跟組合 結果都正確
但不知為何輸出三角形就爆炸了= =|||||
程式碼(Code):(請善用置底文網頁, 記得排版)
#include <stdio.h>
long fact(int n) //n階乘
{
long factor[n];
factor[0]=1;
int i;
for(i=1;i<n;i++)
factor[i]=i*factor[i-1];
return factor[n-1];
}
long combine(n,r) //組合
{
long cnr=fact(n+1)/(fact(r+1)*fact(n-r+1));
return cnr;
}
void paint(int n) //排版
{
int i,j;
for(i=0;i<=n;i++)
{
for(j=0;j<=n;j++)
{
if(combine(i,j)==0)
printf("");
else
printf("%5ld",combine(i,j));
}
printf("\n");
}
}
int main() //輸出
{
int n;
printf("input n\n");
scanf("%d",&n);
paint(n);
return 0;
}
補充說明(Supplement):
想請問是我自己程式裡面有沒注意到的地方(ex:int long的長度)
還是os有問題??(因為灌新的東西有時會發生記憶體錯誤= =|||)
感謝版上熱心大大們的解答m(__)_m
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.126.0.166
※ 編輯: peropero1 來自: 59.126.0.166 (03/07 15:29)
→
03/07 15:42, , 1F
03/07 15:42, 1F
→
03/07 15:43, , 2F
03/07 15:43, 2F
→
03/07 15:44, , 3F
03/07 15:44, 3F
→
03/07 15:50, , 4F
03/07 15:50, 4F
→
03/07 15:57, , 5F
03/07 15:57, 5F
→
03/07 16:06, , 6F
03/07 16:06, 6F
※ 編輯: peropero1 來自: 59.126.0.166 (03/07 16:21)
→
03/07 16:21, , 7F
03/07 16:21, 7F
→
03/07 16:31, , 8F
03/07 16:31, 8F
→
03/07 16:33, , 9F
03/07 16:33, 9F
→
03/07 16:46, , 10F
03/07 16:46, 10F
→
03/07 16:52, , 11F
03/07 16:52, 11F
→
03/07 19:33, , 12F
03/07 19:33, 12F
→
03/07 19:43, , 13F
03/07 19:43, 13F
→
03/07 19:46, , 14F
03/07 19:46, 14F
→
03/07 23:19, , 15F
03/07 23:19, 15F
→
03/07 23:20, , 16F
03/07 23:20, 16F
→
03/08 13:21, , 17F
03/08 13:21, 17F
→
03/14 19:08, , 18F
03/14 19:08, 18F
→
03/14 19:10, , 19F
03/14 19:10, 19F