2014-02-24 80 views
0

我試圖用星號(*)替換Pascal三角形中的每個偶數。到目前爲止,我的代碼看起來像這樣:用星號替換Pascal三角形中的每個偶數?

#include<stdio.h> 
#include<stdlib.h> 
long calc(int); 
int main() 
{ 
int i,j,row,pas; 
printf("Enter no. of rows in pascal triangle : "); 
scanf("%d", &row); 
for(i=0; i<row; i++) 
{ 
    for(j=0; j<=(row-i-1); j++) 
    printf(" "); 
    for(j=0; j<=i; j++) 
    { 
    pas=calc(i)/(calc(j)*calc(i-j)); 
    printf("%ld ",pas); 
    } 
    printf("\n"); 
} 
system("pause"); 
return 0; 
} 

long calc(int num) 
{ 
int x; 
long res=1; 
for(x=1; x<=num; x++) 
    res=res*x; 
return (res); 
} 

我需要插入的代碼塊

if (i%2==0) 
{ 
    i = asterisk; 
    printf("%c", asterisk); 
} 

當然,我會把在main()

char asterisk = 42; 
(也許?)

任何人都可以幫助我嗎?

+2

你試過嗎?提示:爲什麼你會修改*'i'? – usr2564301

+0

我的不好,當時我正在做別的事情,我忘了刪除那一行。 – gulftown

回答

1

https://ideone.com/qIN4Sf

#include<stdio.h> 
#include<stdlib.h> 
char asterisk = 42; 
long calc(int); 
int main() 
{ 
int i,j,row,pas; 
printf("Enter no. of rows in pascal triangle : "); 
scanf("%d", &row); 
printf("\n"); 
for(i=0; i<row; i++) 
{ 
    for(j=0; j<=(row-i-1); j++) 
    printf(" "); 
    for(j=0; j<=i; j++) 
    { 
    pas=calc(i)/(calc(j)*calc(i-j)); 
    if (pas%2==0) 
     printf("%c ", asterisk); 
    else 
     printf("%ld ",pas); 
    } 
    printf("\n"); 
} 
system("pause"); 
return 0; 
} 

long calc(int num) 
{ 
int x; 
long res=1; 
for(x=1; x<=num; x++) 
    res=res*x; 
return (res); 
} 
+0

非常感謝,它工作正常。 – gulftown

+0

沒問題我在'scanf'後添加了'printf(「\ n」);'所以第一個值看起來更好 – SSpoke