把输入的所有句子居中放置,不能完全居中的一左一右放置,四周用*围满。
#include<stdio.h>
#include<string.h>
struct node
{
char a[1001];
int l;
} p[1001];
int main()
{
int i,j,k,n=0,max=0,mm,f=0;
while(gets(p[n].a))
{
p[n].l=strlen(p[n].a);
if(max<p[n].l)
max=p[n].l;
n++;
}
for(i=1; i<=(max+2); i++)
printf("*");
printf("\n");
for(i=0; i<n; i++)
{
printf("*");
if(p[i].l==max)
printf("%s",p[i].a);
else
{
mm=(max-p[i].l);
if(mm%2)
{
if(f%2==1)
{
mm=mm/2+1;
}
else
mm=mm/2;
f++;
}
else mm=mm/2;
for(j=1; j<=mm; j++)
{
printf(" ");
}
printf("%s",p[i].a);
for(k=j; k<=(max-p[i].l); k++)
printf(" ");
}
printf("*\n");
}
for(i=1; i<=(max+2); i++)
printf("*");
printf("\n");
}