[心得] 菱型
最近開始重新復習C,就想到以前上課做過的東西
年代久遠再寫一次,有其它什麼比較好的寫法嗎?
#include <stdio.h>
void printstar(int x){ //印出星形,因為半型空格的關係一次印二個
if(x==0)
return;
printf("**");
printstar(--x);
}
void printblank(int y){ //印出半型空白
if(y==0)
return;
printf(" ");
printblank(--y);
}
int main(){
int a,b,c;
scanf("%d",&a);
c = ((a/2)+1); //抓出菱型裡星星數量最多的row
for(b=1;b<=a;b++){ //輸入奇數給a,印出a個row的菱型
if(b>c){
printblank(b-c);
printstar((2*c)-b);
}else{
printblank(c-b);
printstar(b);
}
printf("\n");
}
getche();
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.214.249
※ 編輯: sephen 來自: 59.115.214.249 (03/28 16:28)
推
03/28 18:07, , 1F
03/28 18:07, 1F
→
03/28 18:11, , 2F
03/28 18:11, 2F
推
03/28 19:58, , 3F
03/28 19:58, 3F
推
03/28 19:59, , 4F
03/28 19:59, 4F
→
03/28 19:59, , 5F
03/28 19:59, 5F
→
03/28 20:00, , 6F
03/28 20:00, 6F
→
03/28 20:11, , 7F
03/28 20:11, 7F
→
03/28 20:18, , 8F
03/28 20:18, 8F
我寫出來是這樣
#include <stdio.h>
int main(){
int a,b,c;
scanf("%d",&a);
b = a - 1;
c = a;
for(a;a>=1;){
if(b-->=1){
printf(" ");
}else{
for(int x=1;x<=c;x++)
printf("*");
printf("\n");
b = --a - 1;
}
}
getche();
}
※ 編輯: sephen 來自: 59.115.202.159 (03/28 23:16)
推
03/29 00:28, , 9F
03/29 00:28, 9F
→
03/29 00:45, , 10F
03/29 00:45, 10F
推
03/29 00:54, , 11F
03/29 00:54, 11F
→
03/29 00:56, , 12F
03/29 00:56, 12F
→
03/29 03:12, , 13F
03/29 03:12, 13F
→
03/29 03:12, , 14F
03/29 03:12, 14F