打印数字空心菱形
1 打印数字空心菱形
描述
由键盘输入 n(n 为奇数),打印如下图空心菱形
例 :
输入格式
7
输出格式
输入样例
3
输出样例
假设输入的奇数为N
注意点:
1,第i行数字前的空格数为N-i;
2,每行之间首数字和尾数字之间相差的数字为等差数列,差为2;
3,在开始打印下半部分时要注意,稍后会细讲;
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int m;
m=(n+1)/2;
int i,j,k,t=1;
for(i=1;i<=m;i++)
{
for(j=0;j<m-i;j++)
{
printf(" ");
}
printf("%d",i);
if(i>=2)
{
for(k=0;k<t;k++)
{
printf(" ");
}
printf("%d",i);
t=t+2;
}
printf("\n");
}
t=k-2;
n=m;
m=m-1;
for(i=m;i>0;i--)
{
for(j=0;j<n-i;j++)
{
printf(" ");
}
printf("%d",i);
for(k=0;k<t;k++)
{
printf(" ");
}
if(i>=2)
{
printf("%d\n",i);
}
t=t-2;
}
return 0;
}
运行结果:
(编译器为微软visual stdio code(2019))
关于打印下半部分:
如果采用t=t-2,要注意t在后面可能不止运行了一次t=t+2的运算,据测试结果,应该运行了2次,所以t=t-4和我上文的t=k-2的效果一致。
还没有评论,来说两句吧...