飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4364|回复: 6

[C/C++] 独立自主画出菱形,小小地纪念一下

[复制链接]

该用户从未签到

发表于 2010-11-11 19:58:43 | 显示全部楼层 |阅读模式
Nisy的编程教学第五集看了个开头,看到群里有人讨论说里边有个打印菱形的设计作业,我在没看Nisy讲到这部分的前提下自己想出了打印菱形的方法,这也算是我除hello world外第一个真正的程序了。虽然说这对很多人来说不算什么,但对我来说毕竟是第一次,特此纪念一下,嘻嘻:loveliness:
顺便说一下我的思路吧。
画菱形有点像十字绣,把“*”填充到该放的地方,其它打空格就好了
既然是十字绣,就需要横竖两个坐标,所以定义i,j两个变量分别代表行和列
首先需要确定最上边点的位置,i=1时,“*”所在的列数即为用户输入的长度数,i每加一,“*”便要向两边各加减一,直到最大的宽度。
我把菱形分为上半部分和下半部分,上半部分画对了,下半部分只需要反过来就行。
下面是我的实现代码,有什么不足请大家指点!
  1. main ()
  2. {
  3.   int c;
  4.   int i;
  5.   int j;

  6.   printf("input the length please\n"); //输入菱形长度
  7.   scanf("%d",&c);

  8.   for (i=1;i<=c;i++)                   //用tc编译,变量必须在main中申明,否则报错
  9.   {for (j=1;j<=2*c;j++)
  10.     {if (j==c-i+1||j==c+i-1)
  11.         printf("*");
  12.      else
  13.         printf(" ");
  14.      if (j==2*c)
  15.         printf("\n");
  16.     }                          
  17.   }                                    //上半部分菱形
  18.   for (i=c-1;i>=1;i--)
  19.   {for (j=1;j<=2*c;j++)
  20.     {if (j==c-i+1||j==c+i-1)
  21.         printf("*");
  22.      else
  23.         printf(" ");
  24.      if (j==2*c)
  25.         printf("\n");
  26.     }
  27.   }                                    //下半部分菱形
  28.   printf("Thank you for using.Coded by SoSoNemo.\n");
  29. }
复制代码
PYG19周年生日快乐!

该用户从未签到

发表于 2010-11-12 05:57:58 | 显示全部楼层
新人,赞一个,我想其实可不可以把上半部分再看成两个左右对称的,这样在算法实现上可否会有进步~
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2010-11-12 14:30:53 | 显示全部楼层
回复 2# 风卷


    上半部分我就是按对称做的啊,判断j==c-i+1 || j==c+i-1这样不就是对称的吗?
PYG19周年生日快乐!

该用户从未签到

发表于 2010-11-13 11:46:02 | 显示全部楼层
不错哦 没看第五课就了解for的使用 看来不是0基础 呵呵

写完这个之后又什么感受么 对编程上的感受 可以写一下
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2010-11-14 16:52:47 | 显示全部楼层
回复 4# Nisy


嘿嘿,被发现了,以前自己零星看过点这方面的书,但是感觉理解不是那么透彻。
我觉得看Nisy编程教学最大的感受就是,对内存有了更深的理解,不再拘泥什么变量类型之类的“虚名”,也觉得编程并不是那么困难的,关键是人自己要有逻辑,把这个逻辑用相应的编程语言告诉电脑就可以了。
这段时间自己在看王爽的《汇编语言》,确实是一本非常好的书,我对计算机的理解也逐步加深了。
呵呵,希望更多的朋友加入编程学习的大军,假以时日,写出自己满意的程序!!
PYG19周年生日快乐!

该用户从未签到

发表于 2010-11-15 11:57:14 | 显示全部楼层
NISY的教材很不错,看了较多的这个很新颖,采用一种新的教学方式
PYG19周年生日快乐!

该用户从未签到

发表于 2010-11-16 02:01:35 | 显示全部楼层
不错,赞一个。
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表