鱼C论坛

 找回密码
 立即注册
查看: 5644|回复: 4

[已解决]循环算法

[复制链接]
发表于 2015-7-25 22:31:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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页的题。


最佳答案
2015-7-25 23:18:15
大哥啊,你也是够了,害我足足看了好久代码

首先一个错误,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了,也说不通,你看看题是否一致,还有能否对照下答案?
QQ图片20150725222807.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-25 22:48:02 | 显示全部楼层
不用怀疑你的代码 输出的就是6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-25 23:18:15 | 显示全部楼层    本楼为最佳答案   
大哥啊,你也是够了,害我足足看了好久代码

首先一个错误,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了,也说不通,你看看题是否一致,还有能否对照下答案?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-25 23:19:23 | 显示全部楼层
当然你也可以把循环语句中的i和p对换,这样也可以达到你要的目的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-26 18:06:41 | 显示全部楼层
入门C语言不建议使用*谭*浩*强*,我不是鄙视,真的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-27 13:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表