利用嵌套循环进行 任意行(N)菱形的输出;
思路:从特殊到一般;(找规律)
先考虑N=7时的菱形:
递推式;
我们分别让行标(i)从上到下依次为: -3 -2 -1 0 -1 -2 -3 -4 i
每行的空格数为: 3 2 1 0 1 2 3 4 abs(i)
每行 * 的个数为: 1 3 5 7 4 5 3 1
*的递推式为((-abs(i)+(n+1))*2-1
其中(n+1)的意义为上等腰三角形的行数,及为 n=(N-1)/2+1;
下面为具体代码:
'''c
#include<stdio.h>
#include<math.h>
int main()//打印任意行菱形;
{
int i = 0;
int j = 0;
int N;
int n;
scanf("%d", &N);//N一;般为奇数
n = (N - 1) / 2;//若为偶数则打印偶数-1的奇数下的菱形;
for (i = -n; abs(i) <=n; i++)
{
for (j = 1; j <= abs(i); j++)
printf(" ");
for (j = 1; j <= ((-abs(i) +(n+1) ) * 2 - 1); j++)
printf("*");
printf("\n");
}
return 0;
}
例:输入17;(此处需注意输入的N为奇数和偶数的情况)
输出: