- UID
- 57950
注册时间2009-1-23
阅读权限10
最后登录1970-1-1
周游历练

该用户从未签到
|
Nisy的编程教学第五集看了个开头,看到群里有人讨论说里边有个打印菱形的设计作业,我在没看Nisy讲到这部分的前提下自己想出了打印菱形的方法,这也算是我除hello world外第一个真正的程序了。虽然说这对很多人来说不算什么,但对我来说毕竟是第一次,特此纪念一下,嘻嘻:loveliness:
顺便说一下我的思路吧。
画菱形有点像十字绣,把“*”填充到该放的地方,其它打空格就好了
既然是十字绣,就需要横竖两个坐标,所以定义i,j两个变量分别代表行和列
首先需要确定最上边点的位置,i=1时,“*”所在的列数即为用户输入的长度数,i每加一,“*”便要向两边各加减一,直到最大的宽度。
我把菱形分为上半部分和下半部分,上半部分画对了,下半部分只需要反过来就行。
下面是我的实现代码,有什么不足请大家指点!- main ()
- {
- int c;
- int i;
- int j;
- printf("input the length please\n"); //输入菱形长度
- scanf("%d",&c);
- for (i=1;i<=c;i++) //用tc编译,变量必须在main中申明,否则报错
- {for (j=1;j<=2*c;j++)
- {if (j==c-i+1||j==c+i-1)
- printf("*");
- else
- printf(" ");
- if (j==2*c)
- printf("\n");
- }
- } //上半部分菱形
- for (i=c-1;i>=1;i--)
- {for (j=1;j<=2*c;j++)
- {if (j==c-i+1||j==c+i-1)
- printf("*");
- else
- printf(" ");
- if (j==2*c)
- printf("\n");
- }
- } //下半部分菱形
- printf("Thank you for using.Coded by SoSoNemo.\n");
- }
复制代码 |
|