hdu2091很纠结啊!输出的结果是对的,但是不明白为什么会有那么多空行~~

2025-04-28 08:06:31
推荐回答(2个)
回答1:

#include
int main()
{
int n,i,f=0;
char c[2]={};
while((c[0]=getchar())!='@')
{
if(f)puts("");f=1;
scanf("%d",&n),getchar();
for(i=1;i<=n-1;i++)printf("%*c%-*c%s\n",n-i,32,i-1<<1,c[0],i==1?"":c);
for(i=0;i<2*n-1;i++)putchar(c[0]);puts("");
}
return 0;
}
不帮楼主改了,给楼主个短的,注意每个三角形间都应有个空行,而文件尾也应该有个空行

回答2:

#include
int main()
{
int n,temp=0;
char ch;
while(scanf("%c%d",&ch,&n)!=EOF)
{
getchar();
if(ch=='@') break;
if(temp) putchar(10);
temp=1;
if(n==1)
{
printf("%c\n",ch);
continue;
}
int i,j,k,a,b,t;
for(i=1;i printf(" ");
printf("%c\n",ch);
for(j=n-2,k=1;j>=1,k<=2*n-4;j--,k+=2)
{
for(a=1;a<=j;a++)
printf(" ");
printf("%c",ch);
for(b=1;b<=k;b++)
printf(" ");
printf("%c\n",ch);
}
for(t=1;t<=2*n-2;t++)
{
printf("%c",ch);
}
printf("%c",ch);
printf("\n");
}

return 0;
}