c语言,空心三角形。
输入每行包含一个字符和一个整数n(0<n<41),不同的字符表示不同的花纹,整数n表示等腰三角形的高。显然其底边长为2n-1。如果遇到@字符,则表示所做出来的样板三角形已...
输入
每行包含一个字符和一个整数n(0 < n < 41),不同的字符表示不同的花纹,整数n表示等腰三角形的高。显然其底边长为2n-1。如果遇到@字符,则表示所做出来的样板三角形已经够了。
输出
每个样板三角形之后有一个空行。显然行末没有多余的空格。
输入样列
X 2
A 7
@
输出样例
X
XXX
A
A A
A A
A A
A A
A A
AAAAAAAAAAAAA
我的代码:
#include<stdio.h>
#include<string.h>
int main()
{
int n,i,t,k,h,f=0;
char a;
while(scanf("%c",&a)!=EOF&&a!='@')
{
scanf("%d",&n);
if(n==1)
{
if(f)
printf("\n");
f=1;
printf("%c\n",a);
getchar();
continue;
}
if(f)
printf("\n");
f=1;
t=2*n-1;
for(i=0;i<t/2;i++)
printf(" ");
printf("%c\n",a);
k=t/2;
h=1;
if(k>1)
{
while(k--)
{
for(i=0;i<k;i++)
printf(" ");
printf("%c",a);
for(i=0;i<h;i++)
printf(" ");
printf("%c\n",a);
h+=2;
if(k==1)
break;
}
}
for(i=0;i<t;i++)
printf("%c",a);
printf("\n");
getchar();
}
return 0;
}
提交说 格式 错误,求教怎么改。 展开
每行包含一个字符和一个整数n(0 < n < 41),不同的字符表示不同的花纹,整数n表示等腰三角形的高。显然其底边长为2n-1。如果遇到@字符,则表示所做出来的样板三角形已经够了。
输出
每个样板三角形之后有一个空行。显然行末没有多余的空格。
输入样列
X 2
A 7
@
输出样例
X
XXX
A
A A
A A
A A
A A
A A
AAAAAAAAAAAAA
我的代码:
#include<stdio.h>
#include<string.h>
int main()
{
int n,i,t,k,h,f=0;
char a;
while(scanf("%c",&a)!=EOF&&a!='@')
{
scanf("%d",&n);
if(n==1)
{
if(f)
printf("\n");
f=1;
printf("%c\n",a);
getchar();
continue;
}
if(f)
printf("\n");
f=1;
t=2*n-1;
for(i=0;i<t/2;i++)
printf(" ");
printf("%c\n",a);
k=t/2;
h=1;
if(k>1)
{
while(k--)
{
for(i=0;i<k;i++)
printf(" ");
printf("%c",a);
for(i=0;i<h;i++)
printf(" ");
printf("%c\n",a);
h+=2;
if(k==1)
break;
}
}
for(i=0;i<t;i++)
printf("%c",a);
printf("\n");
getchar();
}
return 0;
}
提交说 格式 错误,求教怎么改。 展开
1个回答
更多追问追答
追问
我运行和你一样,但交上去判断我格式错误。
追答
他说的是每个三角形后面有一个空格,格式确实不对,我改了下,你看看行么
while(scanf("%c",&a)!=EOF&&a!='@')
{
scanf("%d",&n);
if(n==1)
{
//if(f) 这里注释掉了
// printf("\n");
f=1;
printf("%c\n",a);
getchar();
printf("\n");//这里加了一个空格
continue;
}
//if(f) 这里注释掉了
// printf("\n");
f=1;
t=2*n-1;
for(i=0;i<t/2;i++)
printf(" ");
printf("%c\n",a);
k=t/2;
h=1;
if(k>1)
{
while(k--)
{
for(i=0;i<k;i++)
printf(" ");
printf("%c",a);
for(i=0;i<h;i++)
printf(" ");
printf("%c\n",a);
h+=2;
if(k==1)
break;
}
}
for(i=0;i<t;i++)
printf("%c",a);
printf("\n");
printf("\n");//这里加了一个换行
getchar();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询