まず、アスタリスク三角形の例を見てみましょう。
アスタリスクトライアングルの特徴は以下の通りです
印刷結果がイラストと全く同じになるパターンを例にコードを書いていきます。
アイデア分析
1) まず、アスタリスクの三角形を、星の前にスペースを入れずに出力します。
コードは以下のように表示されます。
#include <stdio.h>
# define N 4
void main(){
int i,j,k;
for(i=1;i<=N;i++){//控制打印输出4行星星
for(j=1;j<=2*i-1;j++){//控制打印输出每行的星星个数
printf("*");
}
printf("\n");//打印完一行后都需要换行
}
}
コードを実行した結果は次のようになります。
2) 元のコードを前提として、出力の各行の最初のスターの前のスペースの数を制御する for ループ ステートメントを追加します。
このケースのコード全体は次のとおりです
#include <stdio.h>
# define N 4
void main(){
int i,j,k;
for(i=1;i<=N;i++){//控制打印输出4行星星
for(k=1;k<=N-i;k++){
printf(" ");//控制打印输出每一行第一个星星前的空格个数
}
for(j=1;j<=2*i-1;j++){//控制打印输出每行的星星个数
printf("*");
}
printf("\n");//打印完一行后都需要换行
}
}
コードを実行した結果は次のようになります
説明: コードは書き込まれており、パターンの出力は完全に正しいです。でも、一つだけ、緊張していて試験室のルールが分からなかったらどうするか?これは賢い解決策です。彼が望むどんなパターンでも出力し、暴力を使って問題を解決し、そのパターンに従って星を 1 行ずつ出力することができます。行数が 10 行以内であればこの方法でも全然大丈夫ですが、100 行の印刷出力を制御する私の巧妙な方法が失敗した場合は、正直にルールを見つけてループで印刷する必要があります。
私の賢い方法、それを見た先生が専門家と呼んで、666をダブルクリックしてください!
コードは以下のように表示されます。
#include <stdio.h>
void main(){
printf(" *\n");
printf(" ***\n");
printf(" *****\n");
printf("*******\n");
}
コードを実行した結果は次のようになります。
そんなに単純なのか、と感心するしかない。
いくつかのメモ:
先生は、printf を使って星のパターンを出力するという私の賢い方法を読んで、2 点を与えてくれました。これはおそらくまだ大変な作業でしょう。私のこの賢い方法はただ楽しむためのものなので、使用には注意してください。