戌さんとこの問題
gccでコンパイルして
動作見ただけ。
ちゃんと動くかどうかは知りません。
#include#include void draw_rhombus(int n, int count); void draw_aster(int aster, int space); int main(void){ int n; char buf[256]; printf("Nの大きさを入れれ\n"); printf("(ただし、N > 1)"); fgets(buf, sizeof(buf), stdin); n = atoi(buf); if (!(n > 1)) { perror("N <= 0\n"); return EXIT_SUCCESS; } draw_rhombus(n, 1); return EXIT_SUCCESS; } void draw_rhombus(int n, int count){ int aster; aster = (count * 2) - 1; draw_aster(aster, n - count); if (count >= n) { return; } else { draw_rhombus(n, (count + 1)); } draw_aster(aster, n - count); return; } void draw_aster(int aster, int space) { int i; for (i = 0 ; i < space; i++) { printf(" "); } for (i = 0 ; i < aster; i++) { printf("*"); } printf("\n"); return; }
無駄に再帰を使った。
意味はありません。
というか悪い例。