プログラミング初心者向けの練習問題として「アスタリスク(*)を羅列して図形を描画する」というものがあります。
本記事では、アスタリスクで「四角形」を描画する方法について解説します。
実際にプログラムを作成してみる
早速ですが、実際にプログラムを作成していきます。
プログラム作成の手順
プログラム作成の手順は以下の通りです。
- 描画する四角形の幅width、高さheightを入力させる
- widthの値と同じ個数のアスタリスクと改行コードを表示する
- 2の手順をheightの値と同じ回数繰り返す
実装例
上記の手順に従ってプログラムを作成します。
#include <stdio.h>
int main(void) {
/* 変数を定義する */
int width;
int height;
printf("Enter the width : \n");
scanf("%d", &width);
printf("Enter the height : \n");
scanf("%d", &height);
/* アスタリスクで四角形を描画する */
for(int i=0; i<height; i++){
for(int j=0; j<width; j++){
printf("*");
}
printf("\n");
}
return 0;
}
このプログラムを実行すると以下の出力結果が得られます。
Enter the width : 5 Enter the height : 4 ***** ***** ***** *****
応用:ひし形の描画
上記では正方形、長方形を描画するプログラムについて紹介しましたが、そのやり方を少し工夫すればひし形を描画することも可能です。
ここでは、その方法について説明します。
プログラム作成の手順
プログラム作成の手順は以下の通りです。
- 描画するひし形の幅width、高さheightを入力させる
- 「スペース + アスタリスク(widthと同じ個数)」を表示する
- スペースの個数を増やし or 減らしながら2をheight回繰り返す
実装例 その1
上記の手順に従ってプログラムを作成します。
#include <stdio.h>
int main(void) {
/* 変数を定義する */
int width, height, space;
printf("Enter the width : \n");
scanf("%d", &width);
printf("Enter the height : \n");
scanf("%d", &height);
printf("\n");
space = height - 1;
/* アスタリスクでひし形を描画する */
for(int i=0; i<height; i++){
for(int j=0; j<space; j++){
printf(" ");
}
for(int k=0; k<width; k++){
printf("*");
}
printf("\n");
space--;
}
return 0;
}
このプログラムを実行すると以下の出力結果が得られます。
Enter the width : 10 Enter the height : 5 ********** ********** ********** ********** **********
実装例 その2
上記の手順に従ってプログラムを作成します。
#include <stdio.h>
int main(void) {
/* 変数を定義する */
int width, height, space;
printf("Enter the width : \n");
scanf("%d", &width);
printf("Enter the height : \n");
scanf("%d", &height);
printf("\n");
space = 0;
/* アスタリスクでひし形を描画する */
for(int i=0; i<height; i++){
for(int j=0; j<space; j++){
printf(" ");
}
for(int k=0; k<width; k++){
printf("*");
}
printf("\n");
space++;
}
return 0;
}
このプログラムを実行すると以下の出力結果が得られます。
Enter the width : 10 Enter the height : 5 ********** ********** ********** ********** **********
おすすめの記事
本記事を読まれた方には、以下の記事もおすすめします。
【中・上級者への道!】C言語の次に勉強するべきプログラミング言語は何?【オススメは○○】