c - 如何打印这个图案?谁能解释逻辑?
问题描述
任何人都可以为这种模式制定逻辑?我也尝试使用 2 for 循环。我刚刚接受了一次面试,要求我创建如图所示的星形图案。
#include <stdio.h>
int main()
{
char f;
int n;
printf("Enter the number:");
scanf("%d", &n);
int i, j, s, k, l, m;
for (s = 1; s <= n; s++) //printing
{
for (k = 1; k <= n; k++)
{
for (i = 1; i <= n; i++) //pattern
{
for (j = 1; j <= n; j++)
{
if ((i + j == n + 1)) //star positions
{
printf("* ");
}
else
{
printf(" ");
}
}
printf("\n"); //next line
}
}
}
return 0;
}
解决方案
在打印星号 ( ) 字符时,您可以使用printf()
所需数量的空格为您填充字符串。*
这样,您就不必担心自己的间距:
#include <stdio.h>
#include <string.h>
int main(void) {
int n;
printf("Enter the number: ");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
char pat[n + 1];
memset(pat, 0, sizeof pat);
pat[0] = '*';
for (int j = 1; j <= n; j++) {
for (int k = 1; k <= n; k++)
printf("%*s", n, pat);
printf("\n");
pat[j] = ' ';
}
}
}
推荐阅读
- html - 在轮播中为 img 制作 ng-repeat
- python - vscode - 从 .py 文件所在的当前文件夹读取文件
- php - 从正则表达式中获取变量
- python-3.x - 如何在代码中实现 python 字典以完成与列表函数相同的工作
- android - 尝试将数据从活动传递到片段时,我的应用程序崩溃
- python-3.x - Python asyncio:在没有创建任务的情况下启动循环
- grpc - 为什么 GRPC 在其他计算机上不可用?
- c++ - 为什么 pthread_join 会出现此错误?[错误] 从 'void*' 到 'void**' 的无效转换 [-fpermissive]
- python - 任何人都可以帮我处理我的货币商店吗?
- python - odoo 12 中的自动化操作。使用 python 代码设置值