输出如图所示的数字菱形,图中所示为4阶数字菱形。
1
212
32123
4321234
32123
212
1
先确定程序形式,因为结果是对称图形,所以可以分部分输入
第一个循环输入上部分的四行
#include <stdio.h>
int main()
{
int n, i, j, k;
scanf("%d", &n);
for (i = 1; i <= n; i++) //一共n行
for (j = 1; j <= n - i; j++) //数字之前有n-i个空格
printf(" ");
for (k = 1; k <= 2 * i - 1; k++) //空格之后输入数字
printf("*");
printf("\n");
}
- }
这样可以把大致的框架搞定 输出结果就是一个等腰三角形
然后填充内容
每一行的数字都是2*n-1个 ,并且都是从大到小输出,所以可以从中间分开;
定义一个整数k,k从i开始到k大于一递减
在定义一个整数l,l从2到i递增,然后把下半部分补全。
#include <stdio.h>
int main()
{
int n, i, j, k,m=1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n - i; j++)
printf(" ");
for (k = i; k >=1; k--)
printf("%d", k);
for (int l=2;l<=i;l++)
printf("%d", l);
printf("\n");
}
for (i = n-1; i >=1; i--)
{
for (j = 1; j <= n - i; j++)
printf(" ");
for (k = i; k >= 1; k--)
printf("%d", k);
for (int l = 2;l <= i;l++)
printf("%d", l);
printf("\n");
}
}