同样两个整数,
完成四种不同计算
今天继续读取两个整数,用减法、乘法、整数除法和取余得到不同结果,并第一次认识商与余数的关系。
减法与乘法
C 语言使用 - 做减法,使用英文半角星号 * 做乘法,而不是数学符号 ×。
day4.c
int difference = first - second;
printf("%d - %d = %d\n", first, second, difference);
int product = first * second;
printf("%d * %d = %d\n", first, second, product);整数除法只保留整数部分
first、second 和 quotient 都是 int。因此 9 / 4 得到 2,小数部分会被直接丢掉,不会得到 2.25,也不会四舍五入。
day4.c
int quotient = first / second;
printf("%d / %d = %d\n", first, second, quotient);百分号计算余数
% 是取余运算符。9 % 4 得到 1,因为 9 = 4 × 2 + 1。
day4.c
int remainder = first % second;
printf("Remainder = %d\n", remainder);实际运行结果
9 - 4 = 59 * 4 = 369 / 4 = 2Remainder = 1
Visual Studio 显示生成成功,退出代码为 0。减法、乘法、除法和取余都按预测得到结果。
一次很小但重要的排错
减法输出的 \n 后曾多写一个空格。程序换行后又先输出这个空格,使下一行的乘法结果看起来像缩进。删除引号里的空格后,两行重新左对齐。
引号中的字符都会被 printf 原样输出;即使空格写在 \n 后面,它也会出现在新的一行。
除数不能为零
减法和乘法可以使用 0,但 / 和 % 的第二个数不能是 0。当前程序还没有保护,因此没有执行除零测试。
今天真正掌握的内容
- 会使用
-、*、/和% - 理解整数除法会舍去小数部分
- 能解释商与余数之间的关系
- 知道除法和取余的第二个数不能为零
- 能根据输出中的异常空格回到字符串中寻找原因
下一步将学习 if / else,在第二个数为零时主动阻止除法和取余。