BohYoh.comトップページへ

C言語によるアルゴリズムとデータ構造

戻る  

演習1-7の解答

 直角三角形を表示する部分を独立させて以下の形式の関数として実現せよ。
  void trilb (int n );
さらに、直角が左上側、右上側、右下側の三角形を表示する関数を作成せよ。
  void trilu (int n );
  void triru (int n );
  void trirb (int n );

/* 演習1-7 *記号を並べて直角三角形を表示 */ #include <stdio.h> /*--- 直角が左下側の直角三角形を表示 ---*/ void trilb(int n) { int i, j; for (i = 1; i <= n; i++) { /* i行(i = 1, 2, … ,n) */ for (j = 1; j <= i; j++) /* i個の'*'を表示 */ putchar('*'); putchar('\n'); } } /*--- 直角が左上側の直角三角形を表示 ---*/ void trilu(int n) { int i, j; for (i = 1; i <= n; i++) { /* i行(i = 1, 2, … ,n) */ for (j = 1; j <= n-i+1; j++) /* n-i+1個の'*'を表示 */ putchar('*'); putchar('\n'); } } /*--- 直角が右上側の直角三角形を表示 ---*/ void triru(int n) { int i, j; for (i = 1; i <= n; i++) { /* i行(i = 1, 2, … ,n) */ for (j = 1; j <= i - 1; j++) /* i-1個の' 'を表示 */ putchar(' '); for (j = 1; j <= n - i + 1; j++) /* n-i+1個の'*'を表示 */ putchar('*'); putchar('\n'); /* 改行 */ } } /*--- 直角が右下側の直角三角形を表示 ---*/ void trirb(int n) { int i,j; for (i = 1; i <= n; i++) { /* i行(i = 1, 2, … ,ln) */ for (j = 1; j <= n - i; j++) /* n-i個の' 'を表示 */ putchar(' '); for (j = 1; j <= i; j++) /* i個の'*'を表示 */ putchar('*'); putchar('\n'); /* 改行 */ } } int main(void) { int x; printf("三角形の大きさ:"); scanf("%d", &x); printf("\n直角が左下側\n"); trilb(x); printf("\n直角が左上側\n"); trilu(x); printf("\n直角が右上側\n"); triru(x); printf("\n直角が右下側\n"); trirb(x); return (0); }


戻る