http://acm.hust.edu.cn/vjudge/contest/view.action?cid=29448#problem/B
这里要注意的地方~;
1,gets 的头问题 在 <stdio.h> 或者 在<cstdio>
2, 用 gets 函数不安全,可以考虑用gets_s函数,但是好像不支持,百度了一下 vs2005版本以及以上的才有
3, 输出的问题,如果是奇数,就是除不开的问题,要变化。
4,得记得了 用gets() 函数输入空行。
#include <iostream>
#include <cstring>
#include <stdio.h>
using namespace std;
char s[1005][1005];
int lens[1005];
int main()
{
int i=0,inf(-1);
int mf(1);
while (gets(s[i]))
{
lens[i]=strlen(s[i]);
if(lens[i]>inf)
inf=lens[i];
i++;
}
for (int j=0;j<inf+2;j++)
cout<<"*";
cout<<endl;
for(int j=0;j<i;j++)
{
cout<<"*";
if((inf-lens[j])&1) // 奇数 里面还得分情况
{
if(mf&1)
{
int k;
for ( k=0;k<((inf-lens[j])/2);k++)
cout<<" ";
cout<<s[j];
for ( k=0;k<((inf-lens[j])/2+1);k++)
cout<<" ";
cout<<"*"<<endl;
}
else{
int k;
for ( k=0;k<((inf-lens[j])/2+1);k++)
cout<<" ";
cout<<s[j];
for ( k=0;k<((inf-lens[j])/2);k++)
cout<<" ";
cout<<"*"<<endl;
}
mf++;
}
else
{
int k;
for ( k=0;k<((inf-lens[j])/2);k++)
cout<<" ";
cout<<s[j];
for ( k=0;k<((inf-lens[j])/2);k++)
cout<<" ";
cout<<"*"<<endl;
}
}
for (int j=0;j<inf+2;j++)
cout<<"*";
cout<<endl;
return 0;
}