今天遇到一个题,需要用C语言写1到10的阶乘问题。
要求用for或者是while循环
我就尝试用while循环
突然想到一种写法,但是不能完全正确输出答案。源代码如下:
测试结果:
i 和 sum 要初始化一下
sum要在 while 循环开始的地方初始化为1,否则每次循环,sum都会不断增加
1.
scanf里面输入的时候,分割数字,用空格或者回车都是可以达到相同的效果的,不是说只有回车才是结束录入的标志,gets()以回车符作为字符串的终止符,同时将回车符从缓冲区读走,但不作为字符串的一部分。scanf()以空格、回车、制表符作为字符串的终止符,不读走空格、制表符、回车符,仍留在缓冲区中。
2.
实际上在C++语言中的cin和scanf是一样的,他们在读取缓冲区中的字符的时候,一旦遇到空格或换行符,则直接过滤并且不会将他们拿出来,然后直到读取完缓冲区的字符为止。