|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- /*设置俩个变量,一个变量代表被乘数,一个变量代表乘数。不另设变量存放乘积结果,
- 而是直接将每一步骤的乘积放在被乘数变量中。今设变量p为被乘数,变量i为乘数。用
- 循环算法来求结果。*/
- #include <stdio.h>
- int main()
- {
- int p, i;
- p = 1; //S1
- i = 2; //S2
- p = p * i;//S3、结果为2
- i = i + 1; //s4、结果为3
- if(i < 5)/*s5、如果i不大于5,返回重新执行S3及其后的步骤S4和S5;否则算法结束。
- 最后得到P的值就是5!*/
- {
- p = p * i;//结果为6=2*3
- }
- printf("%d\n",p);//输出6
- }
复制代码
请问各位前辈怎么求出P的值等于5, 想了很久了。 想不通。
这是谭浩强c语言第四版第18页的题。
大哥啊,你也是够了,害我足足看了好久代码
首先一个错误,i<5一定是成立的,这样你的if语句的true部分是一定会执行,所以p=6。
假设说i<5不成立,p=2,怎么可能算出5?!
如果改成while循环:
- #include <stdio.h>
- int main(void)
- {
- int p = 1, i = 2;
- p = p * i;//S3、结果为2
- i++; //s4、结果为3
- while (i < 5)
- {
- p = p * i;
- i++;
- }
- printf("%d", p);
- return 0;
- }
复制代码
这样的话p为24了,也说不通,你看看题是否一致,还有能否对照下答案?
|
|