首先..划个表整理规则性
考虑
偶数的情况(n=10)
i j 1234567891
1 1~10 1111111111 i==1印
3 1~10 0100000010 j==2,9
5 1~10 0010000100 j==3,8
7 1~10 0001001000 j==4,7
9 1~10 0000110000 j==5,6
发现...相加11的时候印
奇数的情况(n=11)
i j 12345678901
1 1~11 11111111111 i==1印
3 1~11 01000000010 j==2,10
5 1~11 00100000100 j==3,9
7 1~11 00010001000 j==4,8
9 1~11 00001010000 j==5,7
1 1~11 00000100000 j==6,6
发现相加12的时候印
i==1时
当j==(i+1)/2时
当j==base+1 - (i+1)/2时
复制程式
int main(void)
{ int base,i,j;
printf("请输入三角形底值:\n");
scanf("%d",&base);
for(i=1;i<=base;i=i+2){
for(j=1;j<=base;j++){
if((i==1)|((i+1)/2==j)|(base+1-((i+1)/2)==j)){printf("*");}else{printf(" ");}
}printf("\n");
}
return 0;
}