文章
13
粉丝
0
获赞
44
访问
1.6k
#include <stdio.h>
#include <string.h>
char s[100];
char ss[80][80];
int main()
{
while(scanf("%s",s)!=EOF)
{
int n1=0,n2=0;
int n_max=0;
int len= strlen(s);
for(int i=0;i<=len;i++)
{
n1 = i;
n2 =len+2-2*n1;
if(n1<=n2&&n2<=len&&n2>=3)
{
if(n1>n_max)
{
n_max = n1;
}
}
}
n1 = n_max;
n2=len+2-2*n1;
memset(ss,' ',sizeof(ss));
for(int i=0;i<n1;i++)
{
ss[i][0] = s[i];
}
for(int i=n1;i<n2+n1-2;i++)
{
ss[n1-1][i-n1+1] = s[i];
}
for(int i=n2+n1-2;i<len;i++)
{
ss[n2+n1-2+n1-i-1][n2-1] =s[i];
}
for (int i = 0; i <= n1 - 1; i++)
{
for (int j = 0; j <= n2 - 1; j++)
{
printf("%c", ss[i][j]);
}
printf("\n");
}
}
return 0;
}
找N1的最大值最重要。最后的输出我自己想的也理解不了太抽象了我这样写了。
先根据题目求N1的最大值,然后二维数组打印出来
登录后发布评论
暂无评论,来抢沙发