我在文章中讲的东西他们都看懂了
但具体到自己写代码的时候却完全不知道从何入手
其实看懂知识点例程和真正学会写代码之间相差了好几条街
我一再强调
学编程没有捷径
只有老老实实地敲代码
接下来以训练为主
1. 例题
今天我们先来讲解一道 C 语言的经典例题, 也是从零开始系列中的一道课后练习题
请用控制台程序绘制如下图案
小编推荐一个学 C 语言 / C++ 的学习裙 六九九, 四七零, 五九六 , 无论你是大牛还是小白, 是想转行还是想入行都可以来了解一起进步一起学习! 裙内有开发工具, 很多干货和技术资料分享!
循环经典例题
2. 分析
这个题目是要求打印 30 行 "*", 每行打印的个数不同通过这个信息, 我们应该立刻反映出运用循环来完成那么我们想想, 在循环部分我们都学到了什么
关于循环, 我首先会想到一些例题:
2.1 例题 1
打印 30 个 "*", 每个 "*" 占一行
2.2 例题 2
打印一行 "*", 个数为 30
这两个题目的代码只差一个 , 结果却完全不同掌握了这两个例题, 我们自然能够完成下面这个例题了
2.3 例题 3
打印一个由 "*" 组成的 30 行 30 列的矩阵
执行结果如下:
小编推荐一个学 C 语言 / C++ 的学习裙 六九九, 四七零, 五九六 , 无论你是大牛还是小白, 是想转行还是想入行都可以来了解一起进步一起学习! 裙内有开发工具, 很多干货和技术资料分享!
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
按照这个思路, 可以得到下面的代码:
执行结果如下:
例题 4
这里要说一个问题, 其实 for 循环有两种常见形式:
for (i = 0; i < n; i++)
和
for (i = 1; i <= n; i++)
这种写法执行的次数相同, 可以相互代替大部分 C 语言程序员喜欢第一种方式, 因为数组的下标访问是从 0 开始的, 这样写更方便目前大家可以选择自己喜欢的方法
好了, 回到例题中来现在我们的代码距离目标输出已经很接近了, 缺少的是在每行 * 之前需要输入不同数量的空格我们分析 i 和空格数量, 可以得到如下关系:
每行输出 LINE - i 个空格
于是, 我们得到了最终的实现程序
3. 答案
运行一下这段代码, 你会看到打印结果就是最前面的那张图
4. 课后练习
自己编写代码, 打印出下面这张图
小编推荐一个学 C 语言 / C++ 的学习裙 六九九, 四七零, 五九六 , 无论你是大牛还是小白, 是想转行还是想入行都可以来了解一起进步一起学习! 裙内有开发工具, 很多干货和技术资料分享!
来源: http://www.jianshu.com/p/26ebd989fc5d