2020-9-13出力ダイヤモンドパターン

出力ダイヤモンドパターン

トピック:ひし形パターンを出力するプログラムを記述します。最初の行は文字A、2番目の行は3つの文字Bなどで、n番目の行は2n-1の対応する文字で、各行はデクリメントされます。nにはキーボード入力があります。
感触:重要なのは、forループを使用して、各行のスペースと文字の数を制御することです。
キー:最も重要な場所は、forループのループ変数の値と範囲です。
実際、これは最も単純な数学的シーケンスの知識でもあります。
例として入力n = 5
を考えてみましょう。ひし形パターンを出力したいので
、スペースの各行の入力を制御するときに、5、4、3、2、1、2、3のシーケンスを使用する必要があります。、4、5;
それを構築する方法?k = 1-n; kの値シーケンスは-4、-3、-2、-1,0,1,2,3,4です; kの値は実際には無意味です、目的は次のシーケンスを構築することです
i = n-abs(k);この時点で、iの値シーケンスが構築されます。
各行の文字数の入力を制御するときに、1、2、3、4、5、4、3、2、1 比較されます簡単ですが、各行の文字数は算術シーケンスであることがわかります:1、3、5、7、9、7、5、3、1。この時点では、jの値の範囲は2 * i- 1は
コード化できます
/ * 09:01:36 2020年9月13日、
出力ダイヤモンドパターン(シンプルバージョン)
/
#include <stdio.h>
#include <math.h>
int main()
{ char c; int i 、j、k、n;


printf( "Enter n:");
scanf( "%d"、&n);
printf( "対応するひし形パターン\ n");
c = 'A';
for(k = 1-n; k <= n- 1; k ++)//例としてnを5として、各変数が値k:-4、-3、-2、-1,0,1,2,3,4
{i = n-abs(k ); // i:1,2,3,4,5,4,3,2,1
for(j = 1; j <= n-i + 1; j ++)// j:5,4,3、 2,1,2,3,4,5で表される1行あたりの空白行の数
printf( "");
for(j = 1; j <= 2
i-1; j ++)//ここにもトリックjがあります。 1,3,5,7,9,7,5,3,1
printf( "%c"、c);
printf( "\ n");
c ++;
}
return 0;
}nが5の場合の出力結果

おすすめ

転載: blog.csdn.net/brucecui1998/article/details/108560025