一、算法设计:
2、然后每三张糖纸可以换一个糖果,同时产生一张新的糖纸;
3、以此循环下去,直到糖纸数不足3张时(不考虑可以借糖果),结束程序。
二、参考代码:
#include <stdio.h>int main()
{
int N, tg, tz
scanf("%d",&N)//输入N值。
tg=tz=N//初始糖果和糖纸数都是N个。
while(tz>=3)//糖纸数超过三张,还可以继续换糖果,执行循环。
{
int t=tz/3//t用来存储当前糖纸可以换的糖果数。
tg+=t//累加到糖果总数上。
tz=tz%3+t//剩余的糖纸数。
}
printf("%d元共可买%d个糖果\n", N, tg)//输出结果。
return 0
}
\b 退格(BS) ,将当前位置移到前一列
\n 换行(LF) ,将当前位置移到下一行开头
\r 回车(CR) ,将当前位置移到本行开头
\t 水平制表(HT) (跳到下一个TAB位置)
上面是C中转义字符的含义,这样就比较明白了,f g经过一个/r,把前面的_ab_c _的内容给覆盖了,所以第一行输出f gde(de是前面没有覆盖的完的,前面本来输出_ab_c _de)。
第二句就没什么好说了吧,/b退格,将i覆盖,注意,/b不会覆盖/n和/t的,这里我自己写了一个实验用例:
#include<stdio.h>int main()
{
printf("_ab_c\t_def\tg\n")
printf("h\tk\ni\b\bj_k\n")
return 0
}
“制表符代表八个空格”的说法不准确。制表符的作用是将光标移到最接近8的倍数的位置,使得后面的输出从此开始。换句话说,如果所有数据都紧跟在制表符后面输出,则这些数据只能从第9列、第17列、第25列......开始。如果已经到了第1、2、3、...8列,则直接跳到第9列。
如果已经到了第9、10、11、...16列,则直接跳到第17列。
如果已经到了第17、18、19、...24列,则直接跳到第25列。
.............