用'*'(星号)和'.'(点)打印如下图案。
输入格式:
第一行为一个整数t(0<t<10),代表测试用例组数。后边为用空格分隔的三个整数l,c和n(0<l,c,n<20)。其中l和c代表格子的行数和列数,n代表格子内点的列数(格子内点的行数固定为3)。具体见输出样例。。
输出格式:
每组测试用例输出一组(请看输出样例)。
输入样例:
3
3 1 2
4 4 4
2 5 1
输出样例:
****
*..*
*..*
*..*
****
*..*
*..*
*..*
****
*..*
*..*
*..*
****
*********************
*....*....*....*....*
*....*....*....*....*
*....*....*....*....*
*********************
*....*....*....*....*
*....*....*....*....*
*....*....*....*....*
*********************
*....*....*....*....*
*....*....*....*....*
*....*....*....*....*
*********************
*....*....*....*....*
*....*....*....*....*
*....*....*....*....*
*********************
***********
*.*.*.*.*.*
*.*.*.*.*.*
*.*.*.*.*.*
***********
*.*.*.*.*.*
*.*.*.*.*.*
*.*.*.*.*.*
***********
思路:
先研究小部分,再套入大的循环
eg:
****
*..*
*..*
*..*
它的代码为
scanf("%d %d %d",&row,&lie,&n);
for(y=0;y<4;y++)
{
//打印“****”
if(y==0)
{
for(k=0;k<lie*(n+1)+1;k++)
{
printf("*");
}
printf("\n");
}
//打印“*。。*”
else {
for(x=0;x<lie+1;x++)
{
printf("*");
if(x!=lie)
{
for(l=0;l<n;l++)
printf(".");
}
else printf("\n");
}
}
}
代码实现
#include<stdio.h>
int main()
{
int t,lie,row,n;
int i,j,k,l,cnt=0,x,y;
scanf("%d",&t);
for(i=0;i<t;i++)
{
scanf("%d %d %d",&row,&lie,&n);
for(j=0;j<row;j++)
{
for(y=0;y<4;y++)
{
if(y==0)
{
for(k=0;k<lie*(n+1)+1;k++)
{
printf("*");
}
printf("\n");
}
else {
for(x=0;x<lie+1;x++)
{
printf("*");
if(x!=lie)
{
for(l=0;l<n;l++)
{
printf(".");
}
}
else printf("\n");
}
}
}
}for(k=0;k<lie*(n+1)+1;k++)
{
printf("*");
}
printf("\n");
}
return 0;
}