打印菱形
要考虑打印一个菱形,我们首先将菱形分为上下两个三角形,先打印上三角,再打印下三角。
对于上三角形,假设最多一行有13个*,那么我们可以定义一个left(L)=right(R)=最中间位置(6)。
对于上三角形,我们首先要打印7行,因此确定一个for循环:
for (int i = 0; i < 7; i++);//打印 7行
对于每一行我们需要打印13个字符:
for (int j=0;j<13;j++);//从第一个字符打印到第十三个字符
而L和F是我们判断打印*还是空格的一个范围:
if (j >= L && j <= R)
{
printf("*");
}
else
{
printf(" ");
}
每一行打印完,L都需要向左移一位,R需要向右移一位
打印上三角形:
int main() //打印上三角形
{
int L = 6;
int R = 6;
for (int i = 0; i < 7; i++)
{
for (int j=0;j<13;j++)
{
if (j >= L && j <= R)
{
printf("*");
}
else
{
printf(" ");
}
}
L--;
R++;
printf("\n");
}//L=-1 R=13上
上三角形打印完毕,L会变成-1,R会变成13,越界了,因此我们首先需要执行一次L++,R--,此时L=0,R=12,再来打印下三角形。
对于下三角形,我们只需要打印6行,且第一行便会在i=1处开始打印*,
因此首先需要执行L++,R--,此时L=1,R=11
L++;
R--;
for (int i = 0 ; i < 6; i++)
{
L++;
R--;
for (int j = 0; j < 13; j++)
{
if (j >= L && j <= R)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
打印完整菱形:
int main() //打印菱形
{
int L = 6;
int R = 6;
for (int i = 0; i < 7; i++)
{
for (int j=0;j<13;j++)
{
if (j >= L && j <= R)
{
printf("*");
}
else
{
printf(" ");
}
}
L--;
R++;
printf("\n");
}//L=-1 R=13
L++;
R--;
for (int i = 0 ; i < 6; i++)
{
L++;
R--;
for (int j = 0; j < 13; j++)
{
if (j >= L && j <= R)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
标签:int,打印,++,如何,菱形,&&,三角形 来源: https://blog.51cto.com/u_15153653/2697869
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。