2014-02-24 61 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