1.线段图案
解题思路:
这里非常简单,我们只需要用一个循环控制打印即可。
解题代码:
#include<stdio.h>
int main()
{
int n = 0;
while ((scanf("%d", &n)) != EOF)
{
int i = 0;
for (i = 0; i < n; i++)
{
printf("*");
}
printf("\n");
}
return 0;
}
2.正方形图案
解题思路:
这里和上一题大同小异,我们每次打印一行,一共打印n行即可。
解题代码:
#include<stdio.h>
int main()
{
int n = 0;
while ((scanf("%d", &n)) != EOF)
{
int i = 0;
for (i = 0; i < n; i++)
{
int j = 0;
for (j = 0; j < n; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
3.直角三角形图案
解题思路:
关键就是每行递增怎么实现要想明白。
解题代码:
#include<stdio.h>
int main()
{
int n = 0;
while ((scanf("%d", &n)) != EOF)
{
int i = 0;
for (i = 0; i < n; i++)
{
int j = 0;
for (j = 0; j <= i; j++)
{
printf("*");
}
printf("\n");
}
}
return 0;
}
4.翻转直角三角形图案
解题思路:
这里我们需要知道怎么才能使每一行的元素递减1,直接上代码演示。
解题代码:
#include<stdio.h>
int main()
{
int n = 0;
while ((scanf("%d", &n)) != EOF)
{
int i = 0;
for (i = 0; i < n; i++)
{
int j = 0;
for (j = 0; j <n-i; j++)//每次打印减去i个元素,当i是0时打印n个
{
printf("*");
}
printf("\n");
}
}
return 0;
}
5.带空格直角三角形图案
解题思路:
这里我们采用先打印前面的空格,再打印后面的 *。
解题代码:
#include<stdio.h>
int main()
{
int n = 0;
while ((scanf("%d", &n)) != EOF)
{
int i = 0;
for (i = 0; i < n;i++)
{
//打印空格
int j = 0;
for (j = 0; j < n-1-i; j++)
{
printf(" ");
}
//打印 *
int m = 0;
for (m = 0; m <=i ; m++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
方法2:
假设我们要创建一个边长为5的直角三角形,那么它因该会这样显示。
通过上图我们可以找到规律,空白的坐标,永远没有n-1大
i+j<n-1
我们看第一行,i=3 + j=0, < n=5-1
第二行也是,i=2 + j=1,< n=5-1
#include<stdio.h>
int main()
{
int n = 0;
while ((scanf("%d", &n)) != EOF)
{
int i = 0;
for (i = 0; i < n;i++)
{
int j = 0;
for (j = 0; j < n; j++)
{
if (i + j < n - 1)
{
printf(" ");
}
else
printf(" *");
}
printf("\n");
}
}
return 0;
}
6.翻转金字塔图案
解题思路:
这里我们先打印前面的空格,让它递增,再打印后面的 *,让它递减即可。
解题代码:
#include<stdio.h>
int main()
{
int n = 0;
while ((scanf("%d", &n)) != EOF)
{
int i = 0;
for (i = 0; i < n; i++)
{
//打印空格
int j = 0;
for (j = 0; j <i ; j++)
{
printf(" ");
}
//打印 *
for (j = 0; j < n-i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}