啊哈磊_编程从这里起步

标题: 啊哈C【第三章】来了! 第1节-【永不停止的哭声】 [打印本页]

作者: admin    时间: 2012-7-5 14:20
标题: 啊哈C【第三章】来了! 第1节-【永不停止的哭声】

在第一章我们就知道,如果让计算机开口说话使用的是printf语句,例如让计算机说“wa”则是printf("wa");那如果让计算机说10遍wa呢?你可以尝试这样写:
[mw_shl_code=c,true]printf("wa wa wa wa wa wa wa wa wa wa");[/mw_shl_code]
当然你也可以这样写:
[mw_shl_code=c,true]printf("wa");
printf("wa");
printf("wa");
printf("wa");
printf("wa");
printf("wa");
printf("wa");
printf("wa");
printf("wa");
printf("wa");[/mw_shl_code]
如果要让计算机说10000遍“wa”呢?那该怎么办?我想你肯定要疯了吧。在本节我们就是要学习如何让计算机做重复的事情。

好,首先我们先来学习如何让计算机“永无止境”的说“wa”。这个很简单,如下:
[mw_shl_code=c,true]while(1>0)
{
        printf("wa");
}[/mw_shl_code]
好,赶快尝试一下,你是不是发现计算机开始无止境的说“wa”了啊。
完整代码如下:
[mw_shl_code=c,true]#include <stdio.h>
int main()
{
    while(1>0)
    {
  printf("wa");
}
sleep(5000);
return 0;
}[/mw_shl_code]
一定要尝试啊,尝试出来了在往下看。
当然了,你也可以让计算机无止境的说任何一个内容。例如
[mw_shl_code=c,true]while(1>0)
{
        printf(“bie wa”);
}[/mw_shl_code]
回到正题。在上面的代码中,有两部分组成,一个是while()另一个是一对{ }花括号的中的内容。他表示的意思是,当while后面( )中的关系表达式为真,也就是关系表达式成立的时候才执行{ }中的内容。
那么很显然(1>0)这个关系是永远成立的,所以计算机会一直执行{ }中的内容,而上面的例子{ }中只有输出一句话,所以计算机就会不停的输出。
这里顺便说一下,如果{ }中只有一条语句,那么这一对{ }花括号可以省略。也就是说可以简略写成
[mw_shl_code=c,true]while(1>0)
        printf(“wa“);[/mw_shl_code]
这个时候你可能要问了while后面圆括号中的1>0是否可以写成2>1或者3>0等等?
当然可以,如果是想让计算机永无停止的执行,你可以写任何一个关系表达式为真的式子。甚至,你可以写while(1),还记得吗我们在第二章说过,如果对于某个数字来判断真假,只要这个数不为0就是真的,例如下面段代码也可以永不停止的在屏幕上打印wa
[mw_shl_code=c,true]while(1)
  printf("wa");[/mw_shl_code]
下面我来实现一个很炫的效果,“黑客帝国”来啦O(∩_∩)O哈哈哈~
[mw_shl_code=c,true]#include <stdio.h>
int main()
{
while(1>0)
{
                printf("0 1");
}
sleep(5000);
return 0;
}[/mw_shl_code]
计算机就会不停的说0和1。
当然你可以改变一下打印的背景和字的颜色,例如改为黑色的背景,绿色的字。
还记得吗?是使用system("color  0a");这个语句。
[mw_shl_code=c,true]#include <stdio.h>
int main()
{
system("color  0a");
while(1>0)
{
                printf("0 1");
}
sleep(5000);
return 0;
}[/mw_shl_code]
是不是很像黑客帝国,哈哈。
下面来猜一猜,下面这段代码计算机会有什么反应?
[mw_shl_code=c,true]#include <stdio.h>
int main()
{
while(1<0)
{
                printf("wa");
}
sleep(5000);
return 0;
}[/mw_shl_code]
我想你应该猜到了,计算机一句wa都没有说,这是问什么呢?因为1<0这个关系表达式不成立,所以计算机没有执行后面花括号中的内容。
此时此刻你会发现计算机要么就打印无数遍永不停止,要么就一次都不打印。如果想打印指定的次数该怎么办?例如我们之前遗留下来的问题:打印1000遍wa,一次不能多一次也不能少该怎么办?不要着急,让我们一起进入下一节。
$        一起来找茬
1. 下面这段代码是让计算机“永无止境”的打印hello。其中有2个错误,快来改正吧^_^
[mw_shl_code=c,true]#include <stdio.h>
int main( )
{
while(1>0);
  print("hello");
sleep(5000);
return 0;
}[/mw_shl_code]


>>更多内容陆续更新<<

作者: hello    时间: 2012-7-5 15:17
盼星星盼月亮盼来第三章,等的花都谢了,无论如何,一直保持支持啊哈C,强顶!
作者: kevin1452    时间: 2012-7-5 15:39
#include <stdio.h>
int main( )
{
while(1>0)
  printf("hello");
sleep(5000);
return 0;
}
作者: yaojinbao    时间: 2012-7-5 17:06
Oh!终于出第三章了。
作者: 唔_空    时间: 2012-7-5 18:32
哈哈,啊哈磊编的教材果然很有趣啊
作者: 极品海盐    时间: 2012-7-5 19:21
第一节 看着  确实很有意思  这几天建设BBS辛苦了
作者: 枫桥晚泊    时间: 2012-7-5 19:31
谢谢C哥,真好
作者: ahunyy    时间: 2012-7-5 22:38
太好了。终于出第三章了
作者: nmjkl    时间: 2012-7-5 23:41
继续加油啊,通俗易懂
作者: nmjkl    时间: 2012-7-5 23:43
找茬答案
1、while(1>0);    这里不能有;
2、print("hello");  这里输出语句拼写错了,应该是printf

作者: nichaoasd    时间: 2012-7-6 01:10
没那么正规才好理解啊。
作者: admin    时间: 2012-7-6 11:15
nmjkl 发表于 2012-7-5 23:43
找茬答案
1、while(1>0);    这里不能有;
2、print("hello");  这里输出语句拼写错了,应该是printf

{:soso__14138984254237925132_1:}

作者: xxzzxxzzzzs    时间: 2012-7-6 18:53
我电脑C语言里为什么SLEEP显示是error
作者: ahalei    时间: 2012-7-6 20:18
xxzzxxzzzzs 发表于 2012-7-6 18:53
我电脑C语言里为什么SLEEP显示是error

看来你用的不是ahac
作者: ahalei    时间: 2012-7-6 20:19
xxzzxxzzzzs 发表于 2012-7-6 18:53
我电脑C语言里为什么SLEEP显示是error

需要#include<windows.h>
作者: xxzzxxzzzzs    时间: 2012-7-6 21:25
本帖最后由 xxzzxxzzzzs 于 2012-7-6 21:30 编辑
ahalei 发表于 2012-7-6 20:18
看来你用的不是ahac


不是,是msdev
看来还是编译器的问题
作者: williamdocs    时间: 2012-7-7 16:37
感谢啊哈哥,啊哈哥辛苦鸟,向啊哈哥致敬
作者: diandian_c    时间: 2012-7-12 16:30
那个"别wa"太搞笑了
作者: azuo    时间: 2012-7-13 17:45
C哥, 能下载电子书么?
作者: luozhengxxf    时间: 2012-7-14 16:58
ahalei 发表于 2012-7-6 20:19
需要#include

加了那个头文件还是错误啊
作者: 彗星大炮    时间: 2012-7-17 11:59
啊哈,非常好。
作者: gonggu8181    时间: 2012-7-17 22:31
[mw_shl_code=c,true]#include <stdio.h>
int main( )
{
        while(1)
        {
                printf("hello");                
        }
        sleep(5000);
        return 0;
}[/mw_shl_code]
作者: jadlhfj    时间: 2012-7-18 10:01
是这样的,作者一定要努力啊,我们也一定支持,包括物质上的,只要作者提出来,我们一定支持
作者: nmjkl    时间: 2012-7-19 16:38
admin 发表于 2012-7-6 11:15

谢谢,已经不是新手了,呵呵
作者: mlm513242590    时间: 2012-7-20 13:48
感谢啊{:soso_e179:}
作者: 流月    时间: 2012-7-20 23:12
{:soso_e129:}
作者: 受伤的文曲星    时间: 2012-7-21 09:53
有没有全部的给我发一下,第三章到最后的
谢谢了
289741861@qq.com
作者: 受伤的文曲星    时间: 2012-7-21 09:54
跪求,急求,急用,谢谢了
作者: gufo726    时间: 2012-7-21 22:29
超级好的教材  比那些教科强多了
作者: 3guoyou3333    时间: 2012-7-23 10:07
cpp讲的太详细了,看看cpp,看看这本书,更利于c的学习
作者: 1440802022    时间: 2012-8-7 14:43
写的很好啊!!!
作者: jack9603301    时间: 2012-8-30 16:43
while(1>0)后多了一个;
print应输入成printf


作者: lzl    时间: 2012-8-30 23:37
加油~~我看好你 — —
作者: zhhww56    时间: 2012-9-15 11:52
:):):):):):):):)
作者: zhhww56    时间: 2012-9-15 11:52
:):):):):):):)
作者: xushuaileo    时间: 2012-10-16 10:16
本帖最后由 xushuaileo 于 2012-10-16 10:17 编辑

#include <stdio.h>
int main()
{

        while(1>0)
        printf("hello");
        sleep(5000);
        return 0;
}

作者: a515370    时间: 2012-10-28 12:40
顶一顶!!
作者: bianweiall    时间: 2012-11-22 16:56
支持支持!!!
作者: 君子坦蛋蛋    时间: 2012-12-8 10:07
请问调用颜色的这个函数system("color  0a"); 是包含在stdio.h这个头文件中么?为什么用VC6.0是报错的?而贵站的啊哈C没错?
作者: dewklg    时间: 2012-12-13 23:48
太好了,不过还是没看懂。
作者: wangwo    时间: 2012-12-31 18:53
刚入门,学习学习。多指教。
作者: love1994    时间: 2013-1-20 19:51
呵呵,精辟。。。
作者: love1994    时间: 2013-1-20 19:52
那个color颜色的语句在其他的C语言编译系统里都能用吗?用Win Tc软件怎么不行呀??
作者: 然后安越    时间: 2013-2-3 15:11
可以把1>0改成一个变量大于零,这样就可以控制次数了
作者: camelro    时间: 2013-3-20 23:45
Sleep  S要大写  还有要加一条指令 #include <windows.h>
作者: camelro    时间: 2013-3-20 23:45
ahalei 发表于 2012-7-6 20:19
需要#include


Sleep  S要大写  还有要加一条指令 #include <windows.h>
作者: joson    时间: 2013-7-5 15:22
支持一个吧。、
作者: joson    时间: 2013-7-5 15:23
[mw_shl_code=c,true]  这个是啥意思啊。
作者: 2825zhangjia    时间: 2016-1-30 15:02
好帖子要顶起来啊
作者: 1138905368    时间: 2016-7-21 10:29
什么时候出第5节?
作者: s141336    时间: 2016-8-11 20:23
good        




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2