|

楼主 |
发表于 2004-6-8 17:57:36
|
显示全部楼层
:thank
改进如下:
- /*
- * 打印任意边长的正方形,图案形状如下:
- * *
- * * * *
- * * * * * *
- * * * * * * * *
- * * * * * *
- * * * *
- * *
- *
- * version 1.0.0
- * 2004-06-08
- * By seablue at linuxsir.cn
- *
- * 改正bug:当输入非数字的时候 输出边长5的正方形。
- */
- #include <stdio.h>
- main()
- {
- int j, i, a, n=0;
- printf("请输入边长:\n");
- scanf("%d",&n);
- if (n <= 0)printf("输入非法边长!\n");
- [color=green]else if (!isdigit(n))printf("以数字开头的有效边长打印!\n");/*rev 1.1.0*/[/color]
- [color=red]/*
- *省略的exit(1),被合并到初始化n=0和下面的条件判断:a<2*n
- */[/color]
- for (j = 1, a = 1; a < 2*n; a++,(a > n)?(j--):(j++))
- {
- /*调整打印边距,让图形始终打印在屏幕中央。*/
- for (i = 1; i < 40-2*n; i++)
- printf(" ");
- for (i = 1; i <j+n;i++)
- printf("%s",i>(n-j)?"* ":" ");
- printf("\n");
- }
- }
复制代码 |
|