空心三角形
Description:
用给出的字符画出空心三角形。
Input:
第一行输入整数t,表示有t组测试数据,每组测试数据占一行,每行包含一个字符和一个整数n
Output:
三角形的中间为空。显然行末没有多余的空格。
Sample Input:
2X 3A 7
Sample Output:
X X XXXXXX A A A A A A A A A A AAAAAAAAAAAAAA
遇到的一些问题:
1.代码如下
#include<stdio.h>
int main()
{
int i,j,k,n,s;
char ch;
scanf("%d",&n); //输入有几组数据。
for(i = 1;i <= n+1;i ++)
{
printf("n = %d,i == %d\n",n,i);
//scanf("%c %d",&ch,&s);
scanf("%c",&ch); //输入打印三角形要用的字符
scanf("%d",&s); //输入三角形的规模
for(j = 1;j <= s;j++)
{
if(j == s)
{
for(k = 1;k<= s*2-1;k++)
{
printf("%c",ch);
}
//printf("\n");
//break;
}
else if(j == 1)
{
for(k = 1;k <= s+(j-1);k ++)
{
if(k == s)
printf("%c",ch);
else
printf(" ");
}
}
else
{
for(k = 1;k<= s*2-1;k++)
{
if(k == s-(j-1)||k == s+(j-1))
printf("%c",ch);
else
printf(" ");
}
}
printf("\n");
}
//i ++;
//printf("\n");
}
return 0;
}
运行结果:
2
n = 2,i == 1
x 3
n = 2,i == 2
x
x x
xxxxx
n = 2,i == 3
a 7
请按任意键继续. . .
n = 2,i == 1
x 3
n = 2,i == 2
x
x x
xxxxx
n = 2,i == 3
a 7
请按任意键继续. . .
2.
代码如下:
#include<stdio.h>
int main()
{
int i = 0,j,k,n,s;
char ch;
scanf("%d",&n); //输入有几组数据。
while(scanf("%c %d",&ch,&s) != EOF)
{
i ++;
//scanf("%c %d",&ch,&s);
//scanf("%c",&ch); //输入打印三角形要用的字符
//scanf("%d",&s); //输入三角形的规模
for(j = 1;j <= s;j++)
{
if(j == s)
{
for(k = 1;k<= s*2-1;k++)
{
printf("%c",ch);
}
//printf("\n");
//break;
}
else if(j == 1)
{
for(k = 1;k <= s+(j-1);k ++)
{
if(k == s)
printf("%c",ch);
else
printf(" ");
}
}
else
{
for(k = 1;k<= s*2-1;k++)
{
if(k == s-(j-1)||k == s+(j-1))
printf("%c",ch);
else
printf(" ");
}
}
printf("\n");
}
//i ++;
//printf("\n");
if(i == n)
break;
}
return 0;
}
运行结果:
2
x 3
x
x x
xxxxx
Press any key to continue
三.代码如下:
x 3
x
x x
xxxxx
Press any key to continue
三.代码如下:
#include<stdio.h>
int main()
{
int i = 0,j,k,n,s;
char ch;
scanf("%d",&n); //输入有几组数据。
while(scanf("%c %d",&ch,&s) != EOF)
{
i ++;
//scanf("%c %d",&ch,&s);
scanf("%c",&ch); //输入打印三角形要用的字符
scanf("%d",&s); //输入三角形的规模
for(j = 1;j <= s;j++)
{
if(j == s)
{
for(k = 1;k<= s*2-1;k++)
{
printf("%c",ch);
}
//printf("\n");
//break;
}
else if(j == 1)
{
for(k = 1;k <= s+(j-1);k ++)
{
if(k == s)
printf("%c",ch);
else
printf(" ");
}
}
else
{
for(k = 1;k<= s*2-1;k++)
{
if(k == s-(j-1)||k == s+(j-1))
printf("%c",ch);
else
printf(" ");
}
}
printf("\n");
}
//i ++;
//printf("\n");
if(i == n)
break;
}
return 0;
}
运行结果:
2
x 3
x
x x
xxxxx
a 7
a
a a
a a
a a
a a
a a
aaaaaaaaaaaaa
Press any key to continue
x 3
x
x x
xxxxx
a 7
a
a a
a a
a a
a a
a a
aaaaaaaaaaaaa
Press any key to continue