快捷搜索:  汽车  科技

c语言代码实战(C语言代码训练精讲)

c语言代码实战(C语言代码训练精讲)今天我们先来讲解一道C语言的经典例题,也是从零开始系列中的一道课后练习题。1. 例题学编程没有捷径只有老老实实地敲代码接下来以训练为主

我在文章中讲的东西他们都看懂了

但具体到自己写代码的时候却完全不知道从何入手

其实看懂知识点例程和真正学会写代码之间相差了好几条街

我一再强调

学编程没有捷径

只有老老实实地敲代码

接下来以训练为主

1. 例题

今天我们先来讲解一道C语言的经典例题,也是从零开始系列中的一道课后练习题。

请用控制台程序绘制如下图案。

c语言代码实战(C语言代码训练精讲)(1)

循环经典例题

2. 分析

这个题目是要求打印30行"*",每行打印的个数不同。通过这个信息,我们应该立刻反映出运用循环来完成。那么我们想想,在循环部分我们都学到了什么。

2.2 例题2

打印一行"*" 个数为30

c语言代码实战(C语言代码训练精讲)(2)

这两个题目的代码只差一个\n 结果却完全不同。掌握了这两个例题,我们自然能够完成下面这个例题了。

2.3 例题3

打印一个由"*"组成的30行30列的矩阵。

c语言代码实战(C语言代码训练精讲)(3)

执行结果如下:

c语言代码实战(C语言代码训练精讲)(4)

30*30矩阵

我们再把例3的要求改一改,要求如下

2.4 例题4

打印30行“*”。第一行打印1个“*”,第二行打印3个“*”,第三行打印5个“*”,... ,第三十行打印59个“*”。

在前面的程序中,我们用变量i控制行的循环,变量j控制列的循环。i的范围0~29,j的范围0~29。那么在例题4中,i和j有什么样的关系呢?

找规律

第一行i = 0;j循环1次
第二行i = 1;j循环3次
第三行i = 2;j循环5次
.........
第三十行i = 29;j循环59次

于是得到这样一个关系:

规律

第n行i = n - 1;j循环2i 1次

那么如何实现循环2i 1次呢,就是让j从0到2i 1。

按照这个思路,可以得到下面的代码:

c语言代码实战(C语言代码训练精讲)(5)

执行结果如下:

c语言代码实战(C语言代码训练精讲)(6)

例题4

这里要说一个问题,其实for循环有两种常见形式:

for (i = 0; i < n; i )

for (i = 1; i <= n; i )

这种写法执行的次数相同,可以相互代替。大部分C语言程序员喜欢第一种方式,因为数组的下标访问是从0开始的,这样写更方便。目前大家可以选择自己喜欢的方法。

好了,回到例题中来。现在我们的代码距离目标输出已经很接近了,缺少的是在每行“*”之前需要输入不同数量的空格。我们分析i和空格数量,可以得到如下关系:

每行输出LINE - i个空格

于是,我们得到了最终的实现程序。

3. 答案

c语言代码实战(C语言代码训练精讲)(7)

运行一下这段代码,你会看到打印结果就是最前面的那张图。

4. 课后练习

自己编写代码,打印出下面这张图。

c语言代码实战(C语言代码训练精讲)(8)

菱形

下一篇会讲解这个程序,请大家先做练习。

学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入学习交流群

639368839,我们一起学C/C !

猜您喜欢: