用C语言实现乘法口诀表的难点在于如何控制数据输出的格式,这一点在于对嵌套for循环的深入理解。首先,外循环赋值一次,内循环执行一遍;对于乘法口诀表这个程序来说,外层循环为1,内层循环也为1时,打印一行一列;外层循环为1,内层循环为2时,打印一行两列、、、、、、以此类推。然后为了美观起见,在打印时按“%-4d”的格式打印,“-”号代表左对齐,“4d”代表输出的×××数据至少占4位,其实在这儿最多占两位,剩下的两位用空格填充。
C语言代码如下:
# include <stdio.h> int main() { int i,j; for(i=1; i<=9; i++) //外层for循环控制列 { for(j=1; j<=i; j++) //内层for循环控制行 { printf("%d*%d=%-4d", j, i, i*j); //%4d表示占4位,不足用空格填充 } //-4表示左对齐 printf("\n"); } return 0; }
干货小知识:*p++ 自增p 还是p 所指向的变量?
后缀++ 和-- 操作符本质上比前缀一目操作的优先级高,即++与p结合优先级高于*与p的结合优先级, 因此*p++ 和*(p++) 等价, 它自增p 并返回p 自增之前所指向的值(也即先去内容,然后指针p才自加)。要自增p 指向的值, 使用(*p)++, 如果副作用的顺序无关紧要也可以使用++*p。