Beginner_WZH
Beginner?
采纳率30%
2017-06-02 11:02 阅读 1.6k
已采纳

大一新生,C语言程序设计题求解答

5

功能:编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=1/2!+1/4!+.....+1/m!(m是偶数)。
#include"stdio.h"
double fun(int m)
{
我不会写的部分!求解答
}
main()
{
int n;
printf("Enter n:");
scanf("%d",&n);
printf("\nThe result is %lf\n",fun(n));
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

8条回答 默认 最新

  • 已采纳
    JeremyIverson 众里寻她千百回 2017-06-02 11:14

    double fun(int m){
    int i;double s=0.00;
    if(m%2==0){
    for(i=2;i<=m;i=i+2){
    s=s+1.00/i;
    }
    return s;
    }
    else
    return 0.000;
    }

    点赞 1 评论 复制链接分享
  • c20130911 C20130911 2017-06-02 11:52

    double fun(unsigned int m)
    {
    unsigned int i,j;
    double result = 0;
    unsigned int fact = 0;

    if (m%2 !=0)
    {
        return 0;
    }
    
    for (i=2; i<=m; i+=2)
    {
        fact = 1;
        for (j=2; j<=i; j++)
        {
            fact *=j;
        }
        result += 1.0/fact;
    }
    
    return result;
    

    }

    点赞 1 评论 复制链接分享
  • Mr_aLIEz Mr_aLIEz 2017-06-02 11:06

    大四最后一次补考飘过~

    点赞 评论 复制链接分享
  • laoge24 Rookie-D 2017-06-02 12:01

    #include

    long digui(int i)
    {
    long l;
    if(i == 1)
    {
    return 1;
    }
    else
    {
    l = i*digui(i-1);
    }
    return l;
    }

    double fun(int m)
    {
    int j;
    double k=0.00,sum=0.00;
    for(j=2;j<=m;j=j+2)
    {
    k = 1.00/digui(j);
    sum = k+sum;
    }
    return sum;
    }

    int main()
    {
    int n;
    printf("Enter n:");
    scanf("%d",&n);
    printf("\nThe result is %lf\n",fun(n));
    }

    点赞 评论 复制链接分享
  • yqdjl6 yqdjl6 2017-06-02 12:11

    能给一下m的范围吗?

    点赞 评论 复制链接分享
  • yqdjl6 yqdjl6 2017-06-02 12:14
     double fun(int n) {
        double sum=0,temp=1;
        for(int i=2;i<=n;i+=2) {
            for(int j=i-1;j<=i;j++)
                temp*=j;
            sum+=1/temp;
        }
        return sum;
    }
    
    点赞 评论 复制链接分享
  • qq_31474267 pacmoc 2017-06-02 12:14

    #include
    double fun(int m){
    double sum = 0;
    int i, t, st = 1;
    for (t = m; t >= 2; t = t - 2) {
    st = 1;
    for (i = 2; i <= t; i++) {
    st = st * i;
    }
    sum += 1.0 / st;
    }
    return sum;
    }

    int main(){
    int n;
    scanf("%d", &n);
    printf("%.3lf\n",fun(n));
    }

    点赞 评论 复制链接分享
  • u014587769 我的学生时代 2017-06-03 01:55

    没有验证,欢迎路人点评:
    懒得再敲一遍代码了

    图片说明

    点赞 评论 复制链接分享

相关推荐