搜索
查看: 6269|回复: 6
打印 上一主题 下一主题

《啊哈C语言》第一章的学习日记

[复制链接]
跳转到指定楼层
楼主
发表于 2012-10-5 01:22:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Nurahmat 于 2012-10-5 01:55 编辑

我相信论坛上的好多朋友都已经看完了《啊哈C语言》第一,第二章了。看完第三章的朋友也肯定不少。
我仔细地看完了第一,第二章。而且反复看了两回。
为什么呢?因为我觉得看书容易,理解难,悟出某些东西更难。
我在这里主要是讨论书上的第一章和第二章的内容。第三章留在后面,不是我没看完,因为我正在研究第三章。我觉得第三章很重要这个后面在分享我的心得了。暂时不讨论第三章。因为本人少数民族(维吾尔族)所以文字方面有什么表达不清楚或者错误的地方希望大家及时通知我,好让我修改和学习。

我们还是说正题吧。下面我跟大家分享一下我的学习心得啦。

第一章:
主要是入门篇,也是最重要的。第一章学好了,后面的一章更容易了解一些。
第一章所说的内容就是,让计算机说话,也就是用Printf函数在屏幕上输出我们想说的内容。
用System函数来让屏幕有颜色,用int变量来进行简单的算法,用scanf输入数据。
我觉得第一章里面最重要的内容就是第九节“交换两个小房子中的数”。如果你没学好前面八个节段,很难理解这一节的。

有些朋友可能会说“这个有什么难的”。说的也是,如果你以前学过C语言,而且有一些经验的话,这就是对你来说小儿科了。
但是对刚刚接触C语言的人来说,并不是那么好理解。虽然书里面解释的清楚,但刚看完的时候我也不太理解。
为什么呢? 第一:没有学过任何一门语言,第一个接触的就是C语言,第二:没有开发经验,刚接触开发语言哪儿来的经验啊。
那我在这里仔细的说说,第一章第九节吧 。
要求就是,交换输出我们所输入的两个数字。
比如:我们输入的是 5 和 6 ,在屏幕输出的时候交换两个数字 显示 6 和 5;


先看看代码:
int main()                        //这就不用说了。
{
int a,b,t;                           //首先定义三个整数变量a,b,t 。
scanf("%d %d",&a,&b);   //然后输入两个整数a和b,a和b就是两个空箱子
                                       //我们在a里面装数字5,b里面装数字6这样a=5;b=6了。
t=a;                                 //我们还有一个空箱子t,把数字a里面的5暂时装在空箱子t
                                       //因为直接a=b的话,不但不交换数字而且b箱子里装的6把a箱子
                                       //里面的5挤出来自己独占两个箱子,最后显示出来的内容都是6了
                                       //所以我们用空箱子t把数字a里面的5暂时装进去。
a=b;                                //然后数字b来独占两个箱子a和b这样a=6;b=6了。
b=t;                                 //现在我们给t箱子暂时装下的数字a拿出来,装到b箱子
                                       //把b箱子里面的数字6挤出去。这样a=6;b=5了。
printf("%d %d",a,b);        //输出a和b两个数字,我们就达到目标了。成功的交换了两个数字了。
sleep(5000);
return 0;
}
下面是解释图,看了就明白了。

下面我们来看看不用临时变量中转,也就是说不用上面说的空箱子t来进行交换数字。

大家看看下面的代码:
#include <stdio.h>
int main()                          //这就不用说饿了。
{
int a,b;                              //定义a和b两个整数变量。
scanf("%d %d",&a,&b);    //输入两个整数。a=30; b=50
a=b-a;                             //b的值50-a的值30=20;这个时候a的值=20,看清楚了现在a的值不是30,是20啊。
b=b-a;                             //b的值50-a的值20=30;这个时候b的值=30了。看清楚了现在b的值不是50,是30啊。
a=b+a;                             //b的值30+a的值20=50;这个时候a的值=50了,就这样交换成功了。
printf("%d %d",a,b);         //输出a和b的值。a=50; b=30
sleep(5000);
return 0;
}
==============================================================================================
虽然前面和后面的输出结果一样,但是算法不同。
所以我悟出来了一个道理:

程序=语言+算法

语言是死的有范围不会超出范围内,备好了表达方式就可以了。
算法是活的,范围广阔,没有一定的范围,会慢慢地累积下来。

学好语言,掌握好算法才是完美的程序员。
===============================================================================================

就这样第一章结束了。希望对大家有所帮助。
我们对C语言也有了初步的认识了。我还是那句老话,接触以后才知道C语言其实很强大。



沙发
发表于 2012-10-5 20:34:07 | 只看该作者
板凳
发表于 2012-10-7 12:23:46 来自手机 | 只看该作者
顶        
地板
发表于 2012-10-19 15:14:42 | 只看该作者
不错
   努力啊
5#
发表于 2012-10-19 18:43:34 | 只看该作者
算法是程序的灵魂。。。神纳算法  我现在仅限于能看不会用- -能理解不会仿唉。。
6#
发表于 2012-12-16 22:17:05 | 只看该作者
第二种算法很神奇吧 不容易想到
7#
发表于 2013-10-5 11:02:28 | 只看该作者
能理解,但是不会仿
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表