“(若希望同时实现延时,需借助于空语句)”
应为:“(若希望同时实现延时,可以关闭编译器的优化功能)”
中间一列三个向下箭头
应为:三个向上箭头
例1.8的修改代码最后的输出“printf("%d \n", n1 + k);”
应为:“printf("%d \n", n2 + k);”
[训练题1.26]上方的文字“也就是说,把求和操作的结果,即第i项的值暂存在fib_1变量中,这样fib_1与fib_2之差就是第i-1项的值。”
应为:“也就是说,把求和操作的结果,即第i项的值暂存在fib_2变量中,这样fib_2与fib_1之差就是第i-1项的值。”
[训练题2.7*]将训练题1.28、1.29改为用多个函数实现。并对1.28添加用按键增减月份、日历自动更新的功能。
应为:
[训练题2.7*]将训练题1.28、1.29改为用多个函数实现。并对1.29添加用按键增减月份、日历自动更新的功能。
“2.4.1 文件包含”中的 #include <temp.h>
应为:#include "temp.h"
“4.4.3 强制类型转换的作用 (2)转换数值”中的伪随机数生成代码注释“任意指定了两个常数”
应为:“两个常数是素数的乘积,以免产生的随机数相同或分布不均”
“5.2.2 二维数组的定义”中的“又例如,可以将b看作长度为6的一维数组,用b[0]+2*i+j(等价于b[i][j])表示自b[0]开始的第2*i+j+1个元素。”
应为:“又例如,可以将b看作长度为6的一维数组,用b[0][2*i+j](等价于b[i][j])表示自b[0]开始的第2×i+j+1个元素。”
“例8.6* 用结构类型实现栈”中的Pop函数
bool Pop(Stack *s, int &i)
{
if (s -> top == -1)
{
printf("Stack is empty.\n");
return false;
}
else
{
i = s -> buffer[s -> top];
s -> top--;
return true;
}
} //出栈
以及之后的main函数
int main()
{
Stack st; //定义栈数据
Init(&st); //初始化栈
Push(&st,12); //入栈
int x;
Pop(&st, x); //出栈
printf("x: %d\n", x);
return 0;
}
应分别为:
bool Pop(Stack *s, int *i)
{
if (s -> top == -1)
{
printf("Stack is empty.\n");
return false;
}
else
{
*i = s -> buffer[s -> top];
s -> top--;
return true;
}
} //出栈
int main()
{
Stack st; //定义栈数据
Init(&st); //初始化栈
Push(&st,12); //入栈
int x;
Pop(&st, &x); //出栈
printf("x: %d\n", x);
return 0;
}
“return *head”应去掉。