-
Lesson 1 - 最简单的C程序
-
Lesson 2 - 打印输出
-
Lesson 3 - 循环打印
-
Lesson 4 - 判断奇偶
-
Lesson 5 - 从1加到100求和
-
Lesson 6 - 乘法表
-
Lesson 7 - 求100以内的最大素数
-
Lesson 8 - 1到100有多少个9
-
Lesson 9 - 整型转字符串
-
Lesson 10 - 约瑟夫环
-
Lesson 11 - 求两个坐标点之间的距离
-
Lesson 12 - 判断机器存储是否小尾端
-
Lesson 13 - 对不起,你的车今天限行
-
Lesson 14 - 判断地图上某点是否有出路
-
Lesson 15 - 统计一个数二进制表示中1的个数
-
Lesson 16 - 字符串拷贝
-
Lesson 17 - 统计单词个数
-
Lesson 18 - 实现 printf
-
Lesson 19 - 命令解释器
-
Lesson 20 - 预处理器实现
-
Lesson 21 - 词法分析器实现
-
Lesson 22 - 猜数游戏
-
Lesson 23 - 五子棋
-
Lesson 24 - 超链接分析器
-
Lesson 25 - cp命令实现
-
Lesson 26 - ELF文件头分析器实现
-
Lesson 27 - 简单流处理器实现和正则表达式
-
Lesson 28 - 数学计算器实现
-
Lesson 29 - 数学计算器实现more命令实现
-
Lesson 30 - sort命令实现
-
Lesson 31 - ls -l命令实现
-
Lesson 32 - Bash项目
-
Lesson 33 - 动态数组实现
-
Lesson 34 - 约瑟夫环问题
-
Lesson 35 - 表达式求值问题
-
Lesson 36 - 广度优先解决迷宫问题
-
Lesson 37 - 词频统计器
-
Lesson 38 - 堆排序问题
-
Lesson 39 - 构造符号表
-
Lesson 40 - MyDictionary项目
-
Lesson 41 - BSearch 实现
-
Lesson 42 - QSort 实现
-
Lesson 43 - 深度优先解决迷宫问题
-
Lesson 44 - KMP 算法实现
-
Lesson 45 - 最长公共子序列(LCS)问题
-
Lesson 46 - Dijkstra 算法
-
Lesson 47 - Huffman Coding 算法
-
Lesson 48 - 地图导航项目
Lesson 5 Summarize all numbers from 1 to 100 从1加到100求和
代码
#include <stdio.h>
int main(void)
{
int sum = 0;
for (int i = 0; i <= 100; i++)
{
sum += i;
}
printf("sum = %d\n", sum);
return 0;
}
copy
知识点
- 循环语句 for
- 自动变量 i
- 赋值运算符 +=
扩展参考
#ifdef DEBUG
#define PRINTD printf
#else
#define PRINTD(format, args...) ((void)0)
#endif
#ifdef DBG_MSG
#define DEBUG_PRINTF(format,args...) \
do { fprintf(stderr,"%s(%d):" format, __FUNCTION__, __LINE__,##args); } while (0)
#else
#define DEBUG_PRINTF(format,args...)
#endif
copy
课堂讨论
- 在 for 循环内部修改循环变量 i 的值,可以吗?
- 循环跳出的时候,i++ 是否还会执行? 最终 i 的值是多少?
- 与 while 循环相比,for 循环适用于哪些场合?
课后练习
- 用户输入5个数,计算它们的平均数,并打印。
- 用户输入5个数,将其中最大的数找出来,并打印。
- 已知11月1日是星期四,请打印出11月份的月历。
名人名言
Edsger W. Dijkstra (结构程序设计之父)
- “If debugging is the process of removing bugs, then programming must be the process of putting them in.”
- “有效的程序员不应该浪费很多时间用于程序调试, 他们应该一开始就不要把故障引入。”
著名的 “Go To Letter”
- Dijkstra在信中建议:“Go To语句太容易把程序弄乱, 应从一切高级语言中去掉; 只用三种基本控制结构就可以写各种程序, 这样的程序可以由上而下阅读而不会返回”。