- 对图形进行拆分(分成有相似结构的几个部分)
- 对每一个row 和 col进行计算
- 构图的最后部分看看是否是有空格补齐
- 有时对于一个给定的 n 我们可对它进行拆分
如
/*
菱形的构图
*/
#include<stdio.h>
int main()
{
int t,n,i,j;
scanf("%d",&n);
t=n/2+1;//这两处分别将n 分成了两个部分,一个上三角,一个下三角;
for(i=1;i<=t;i++)
{
for(j=1;j<=t-i;j++)
printf(" ");
for(j=1;j<=i*2-1;j++)
printf("*");
printf("\n");
}
t--;//同理
for(i=1;i<=t;i++)
{
for(j=1;j<=i;j++)
printf(" ");
for(j=1;j<=(t-i)*2+1;j++)
printf("*");
printf("\n");
}
return 0;
}
- 在很多情况下对列的处理通常是每块是并列式的,而不用循环嵌套实现
如 对于很多要构造图形的题可参考
/*
构造一个金字塔形
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
*/
#include<stdio.h>
int main()
{
char x;
int t1,t2,i,j,k;
scanf("%c",&x);
t1=x-64;
for(i=1;i<=t1;i++)
{
for(j=1;j<=t1-i;j++)
printf(" ");
for(j=1;j<=i;j++)
{
printf("%c",j+64);
}
for(k=i-1;k>=1;k--)
{
printf("%c",k+64);
}
printf("\n");
}
return 0;
}
标签:技巧,int,scanf,构图,循环,64,printf,main
From: https://www.cnblogs.com/zzxs-blog/p/16818103.html