具有不同层的菱形图案的 C 程序
输入一个数字,任务是生成具有给定的 n 个不同层的菱形图案并显示它。
例
Input: n = 3
输出
以下程序使用到了如下方法 −
- 输入行数
- 此图案有(2 * n) + 1 行
- 从 0 到 n 的空格数为 (2 * (n – i))
- 从 n+1 到末尾的空格数为 ((i – n) * 2)
算法
Start Step 1-> declare a function to print a pattern void print_pattern(int n) declare variables as int i, j Loop For i = 1 i <= n * 2 i++ Print space End Print
Loop For i = 1 and i <= (n * 2) – 1 and i++ IF i<n Loop For j = 1 and j <= (n - i) * 2 and j++ Print space End End Else Loop For j = 1 and j <= (i % n) * 2 and j++ Print space End IF i < n Loop For j = 0 and j <= i % n and j++ Print j End Loop For j = (i % n)-1 and j > 0 and j-- Print j End Print 0 End Else IF i > n Loop For j = 0 and j <= n – (i – n) and j++ Print j End Loop For j = (n – (i – n))-1 and j > 0 and j-- Print j End Print 0 End Else Loop For j = 0 and j <= n and j++ Print j End Loop For j = n –1 and j > 0 and j-- Print j End Print 0 End Print
End Loop For i=1 and i<=n*2 and i++ Print space End Print 0 Step 2-> In main() Declare variable as int n=3 Call function print_pattern(n)
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
例
#include <stdio.h> void print_pattern(int n) { // putting the space in line 1 int i, j; for ( i = 1; i <= n * 2; i++) printf(" "); printf("0
"); // generating the middle pattern. for ( i = 1; i <= (n * 2) - 1; i++) { // printing the increasing pattern if (i < n) { for ( j = 1; j <= (n - i) * 2; j++) printf(" "); } else { for ( j = 1; j <= (i % n) * 2; j++) printf(" "); } if (i < n) { for ( j = 0; j <= i % n; j++) printf("%d ", j); for ( j = (i % n) - 1; j > 0; j--) printf("%d ", j); printf("0"); } // printing the decreasing pattern else if (i > n) { for ( j = 0; j <= n - (i - n); j++) printf("%d ", j); for ( j = (n - (i - n)) - 1; j > 0; j--) printf("%d ", j); printf("0"); } else { for ( j = 0; j <= n; j++) printf("%d ", j); for ( j = n - 1; j > 0; j--) printf("%d ", j); printf("0"); } printf("
"); } // putting the space in last line for ( i = 1; i <= n * 2; i++) printf(" "); printf("0"); } int main() { int n = 3; print_pattern(n); return 0; }
输出
广告