首先..劃個表整理規則性
考慮
偶數的情況(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;
}