六边形图案的 C 程序
cserver side programmingprogramming
给定一个整数"n"任务是生成六边形图案并显示最终输出。
示例
输入:n=5 输出:
输入:n = 4 输出:
我们在给定程序中使用的方法如下如下 −
- 用户输入数字"n"
- 将整个图案分为三部分,即上部、中部和下部。 开始循环 i,打印图案的上部,从 i 到 0,i 小于 n,并不断增加 i 的值。 开始循环 m,打印图案的中部,从 m 到 0,m 小于 n-2,并不断增加 m 的值。 开始循环 h,打印图案的下部,从 h 到 res,h 大于 0,并不断减少 h 的值。 继续打印带有空格的 *。
算法
START 步骤 1-> declare function to print hexagonal pattern void pattern(int n) Declare and set int len = 2 * n - 1 Loop For int i = 0 and i < n and i++ declare and set int temp = i + n Loop For int k = 0 and k < temp and k++ IF ((k == n + i - 1) || (k == n - i - 1)) print * End Else print space End Print
End Loop For int m = 0 and m < n - 2 and m++ Loop For int j = 0 and j < len and j++ if (j == 0 || j == len - 1) Print * End Else print space End End Print
End declare and set int res = n - 1 Loop For int h = res and h >= 0 and h-- declare and set int temp2 = h + n Loop For int k = 0 and k < temp2 and k++ if ((k == n + h - 1) || (k == n - h - 1)) print * End Else print space End End Print
End End 步骤 2-> In main() Declare variable int n = 5 call pattern(n) STOP
示例
#include <stdio.h> //打印六边形图案的程序 void pattern(int n) { int len = 2 * n - 1; //for 循环获取图案的上部 for (int i = 0; i < n; i++) { int temp = i + n; for (int k = 0; k < temp; k++) { if ((k == n + i - 1) || (k == n - i - 1)) printf("*"); else printf(" "); } printf("
"); } //for 循环查找模式的中间部分 for (int m = 0; m < n - 2; m++) { for (int j = 0; j < len; j++) { if (j == 0 || j == len - 1) printf("*"); else printf(" "); } printf("
"); } //for 循环获取模式的下半部分 int res = n - 1; for (int h = res; h >= 0; h--) { int temp2 = h + n; for (int k = 0; k < temp2; k++) { if ((k == n + h - 1) || (k == n - h - 1)) printf("*"); else printf(" "); } printf("
"); } } int main() { int n = 5; pattern(n); return 0; }