c - 如何在c中将模式打印为函数
问题描述
我正在学习用c编写代码。我已经编译了这段代码并试图将这个模式转换为一个函数,需要帮助将这个模式存储在一个变量中。
#include <stdio.h>
#include <string.h>
void main()
{
char a[256];
int len,m,i,j,k;
printf("enter string \n");
scanf("%[^\n]",a);
len=strlen(a);
m=len;
for(i=0;i<len;i++)
{
for(k=len; k>= len-i;k--)
{
printf(" ");
}
for(j=i+1;j<len-1-i;j++)
{
printf("%c",a[j]);
}
printf("\n");
}
}
:
这是字符串输入的实际输出 - abcdefghijklmnop -
bcdefghijklmno
cdefghijklmn
defghijklm
efghijkl
fghijk
ghij
hi
我正在尝试创建一个返回此模式的函数。
试图制作像这样的模式,
abcdefghijklmnop
bcdefghijklmno
cdefghijklmn
defghijklm
efghijkl
fghijk
ghij
hi
abcdefghijklmnop
bcdefghijklmno
cdefghijklmn
defghijklm
efghijkl
fghijk
ghij
hi
解决方案
以下代码将产生所需的输出。图案由功能打印。
#include <stdio.h>
#include <string.h>
void fun(char s[], int m)
{
int len,i,j,k, n;
len=strlen(s);
for(n=1; n<=m; n++)
{
for(i=0;i<(int)(len/2)+1;i++)
{
if(len%2 == 1 || i != (int)(len/2))
{
for(k=len; k>=len-i+1; k--)
{
printf(" ");
}
}
for(j=i;j<len-i;j++)
{
printf("%c", s[j]);
}
if(i != j)
{
printf("\n");
}
}
}
}
int main()
{
char a[256];
printf("enter string \n");
scanf("%[^\n]", a);
fun(a, 2);
return 0;
}
推荐阅读
- java - 如何为 Spring Boot 服务器初始化程序编写 mockito 测试
- asp.net - ASP LITERAL 没有显示 HTML 代码,它遗漏了很多代码
- android - 即使在传递正确的订单 ID 后,Android Instamojo 支付活动也会失败
- xcode - 我如何知道我在 Xcode 中打开了哪个 Workspace?
- java - 使用 ExpressionEvaluatingRequestHandlerAdvice 将其推送到远程服务器后无法删除有效负载
- google-colaboratory - 当我想安装 OpenSlide 时,Google Colaboratory 给了我一个错误
- c++ - 指定模板参数时“无法推断模板参数”
- node.js - 如何使用 Nodejs 从 aws Dynamodb 中的地图中删除项目
- vb.net - 如何使用 cellstyle builder 格式字符串对话框正确设置 datagridview defaultcellstyle?
- c++ - 唯一指针初始化