实践项目——循环控制结构流程图 代码解

历时一小时,只做了第一题,菜就是菜,没的说,看代码

项目一

代码:

/*求1到m的倒数和
求1到m的平方和
求1到m间所有奇数的和
求值
求m!*/
#include <stdio.h>

int main()

{
    int s_baocun,n,square_s,odd_s,w,factorial;//定义一堆需要用到的变量,结果我自己看糊涂了
    double m,sum,value;//好吧,标注下:s_baocun是用来存m值的,n是奇数和的变量,w用来转换正负符号
    printf("请输入要求倒数和的数:");
    scanf("%lf",&m);
    sum=0;
    square_s=0;
    odd_s=0;
    value=0;
    factorial=1;
    s_baocun=m;
    m=1;
    n=1;
    w=1;
    while(m<=s_baocun)
    {
        sum+=1/m;
        square_s+=m*m;
        value+=w*1/m;
        factorial*=m;
        m+=1;
        w=-w;
    }
    while(n<=s_baocun)
    {
        odd_s+=n;
        n+=2;
    }
    printf("所求倒数和结果为:%lf\n平方和为:%d\n奇数和为:%d\n一正一负倒数值为:%lf\n阶乘值为:%d",sum,square_s,odd_s,value,factorial);
    return 0;
}
这里讲下,因为奇数求和每次递增2与m自增冲突,所以单独循环计算,w这里是用来作为切换正负符号来用

有个疑问是long long int 定义了该用什么输出呢?%lld 提示codeblocks提示错误,%l64d就直接输出64d了   这个问题明天跟贺老师求教

重新完善了下代码,又花了半小时

代码:

/*求1到m的倒数和
求1到m的平方和
求1到m间所有奇数的和
求值
求m!*/
#include <stdio.h>

int main()

{
    int s_baocun,n,square_s,odd_s,w,factorial;//定义一堆需要用到的变量,结果我自己看糊涂了
    double m,sum,value;//好吧,标注下:s_baocun是用来存m值的,n是奇数和的变量,w用来转换正负符号
    printf("请输入要求倒数和的数:");
    scanf("%lf",&m);
    sum=0;
    square_s=0;
    odd_s=0;
    value=0;
    factorial=1;
    s_baocun=m;
    m=1;
    n=1;
    w=1;
    if(s_baocun<0)
        printf("请输入一个非负数\n");
    else
    {

    while(m<=s_baocun)
    {
        sum+=1/m;
        square_s+=m*m;
        value+=w*1/m;
        m++;
        w=-w;
    }
    while(n<=s_baocun)
    {
        odd_s+=n;
        n+=2;
    }
    if(s_baocun==0)
        factorial=0;
    else
    {
        m=1;
    while(m<=s_baocun)
    {
        factorial*=m;
        m+=1;
    }
    }
    printf("所求倒数和结果为:%lf\n平方和为:%d\n奇数和为:%d\n一正一负倒数值为:%lf\n阶乘值为:%d",sum,square_s,odd_s,value,factorial);
    }
    return 0;
}

看项目二

代码:

/*求π的值*/
#include <stdio.h>
#include <math.h>
int main()

{
    double p,m,pi;
    int w;
    p=0;
    w=1;
    m=1;
    while(1/m>=fabs(0.00001))
    {
        p=p+w*(1/m);
        m+=2;
        w=-w;

    }
    pi=p*4;
    printf("%lf",pi);
    return 0;
}

项目二

代码:

/*Fibonacci数列*/
#include <stdio.h>
int main()

{
    int m1,m2,sum;
    m1=1;
    m2=1;
    sum=0;
    printf("%d\n%d\n",m1,m2);
    while(m1+m2<=10000)
    {
        sum=m1+m2;
        printf("%d\n",sum);
        m1=sum;
        if(m1+m2<=10000)
        {
        sum=m1+m2;
        printf("%d\n",sum);
        m2=sum;

    }
    }
    return 0;
}
这个代码有点勉强,参考了老师的发现可以更简单,不需要if   直接m1=m2,m2=sum。。。。。我绕了一大圈   哈  思维问题


继续项目三

代码:

/*阶乘和*/
#include <stdio.h>
int main()

{
    int n,sum,f;
    n=1;
    sum=1;
    f=0;
    while(n<=10)
    {
        sum=sum*n;
        f=f+sum;
        n++;
    }
    printf("%d",f);
    return 0;
}

2小题

代码:

/*求s=1!+2!+……10!*/
#include <stdio.h>
int main()

{
    int p,n,f,m;
    p=0;n=1;
    while(n<=6)
    {
        f=1;m=1;
        while(m<=n)
        {
            f=f*n;
            m++;
        }
        p=p+f;
        n++;
    }
    printf("%d",p);
    return 0;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值