鱼C论坛

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

新人报道!偶是带着问题来的,今天看小甲鱼从0学C视频。关于有个阶乘的习题中的问题

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

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

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

x
无基础,刚刚开始学C
再看视频过程中跟着练习 !有个阶乘的习题自己试着写了下。但是一直未能得出正确的答案。摸索了好一会……
代码奉上……望指点!!

题目:计算s = 2^2! + 3^2!

#include <stdio.h>

int pingfang(int a);               //声明平方函数pingfan()
int jiecheng(int b);               //声明阶乘函数jiecheng()

void main()
{
        int x = 2, y = 3, s;

        s = jiecheng( pingfang(x) ) + jiecheng( pingfang(y) );

        printf("s = 2^2! + 3^2!中s的值为:%d\n",s);
}


int pingfang(int a )           //定义平方函数pingfan()
{
    int z;
        z = a * a;
        return z;
}

int jiecheng(int b)          //定义阶乘函数jiecheng()
{
        int x = b;
        for (b=b-1; b>0; b--)         //出问题的地方在这里   原本写的是for (b; b>0; b--)  后改为for (b-1; b>0; b--)   最后才写的现在的
                x *= b;
        return x;
}

我想不明白  为什么b-1不行呢……  有能讲解下的么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-6 23:40:22 | 显示全部楼层
你的判断条件是b 你初始化b-1或者减去任何数对b来说是不会有任何影响的
本身函数接受了参数b的值时for的初始化已经完成 b-1是没有任何意义的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-6 23:46:33 | 显示全部楼层
nin98 发表于 2015-7-6 23:40
你的判断条件是b 你初始化b-1或者减去任何数对b来说是不会有任何影响的
本身函数接受了参数b的值时for的初 ...

哦  似乎有点懂了!意思就是这个表达式没有完成赋值,只是一个无用表达式呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-6 23:47:24 | 显示全部楼层
nin98 发表于 2015-7-6 23:40
你的判断条件是b 你初始化b-1或者减去任何数对b来说是不会有任何影响的
本身函数接受了参数b的值时for的初 ...

额!
突然明白了!忘记说谢谢了
现在给补上
谢谢哈!!:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-7 00:01:25 | 显示全部楼层
mse9591 发表于 2015-7-6 23:47
额!
突然明白了!忘记说谢谢了
现在给补上

额,你不要是跑去会我的贴了,我都没想到要那么做,能得到结果,看完这程序。瞬间懂了
谢谢了哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 04:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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