• 作业4 函数应用


    1、输入2个正整数m和n(1≤m,n≤1000),输出m~n之间的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。要求定义并调用函数is(number)判断number的各位数字之和是否等于其自身。

    #include<stdio.h>
    #include<math.h>
    int main(void)
    {
        int n,m,i;//n<=1,m>=1000
        int x,y,z;//x是个位数,y是十位数字,z是百位数字
        x=0,y=0,z=0;
        printf("enter m,n:");
        scanf("%d%d",&m,&n);
        for(i=m;i<=n;i++){
            x=i%10;
            y=(i/10)%10;
            z=i/100;
            if(pow(x,3)+pow(y,3)+pow(z,3)==i)
                printf("i=%d
    ",i);
            if(x+y+z==i)
              printf("%d各位数字之和等于其自身
    ",i);
        }
        return 0;
    }

    2、编写一个程序,判断从键盘接收的数字是否为回文数字。回文数字就是顺着看和倒着看是相同的数。如121、656、2332等。

    #include<stdio.h>
    int main(void)
    {
        int i,n;
        int x,y;//x是从头开始计算的数组下标,而y是从末尾开始计算的数组下标
        x=0;
        y=0;
        printf("enter n:");
        scanf("%d",&n);
        //定义并输入数组
        int a[80];
        for(i=1;i<n;i++)
        {
            printf("enter a[]:");
            scanf("%d",&a[i]);
        }
        for(x=0,y=n;x<y;x++,y--)
        {
            if(a[x]!=a[y])//判断首尾两个字符是否相等,若不相等则不需要继续
                break;
        }
    
        if(x>=y)//for循环正常结束,是回文
            printf("是回文。");
        else
            printf("不是回文");
        return 0;
    }

    3、找出11~999之间的所有的三重回文数字。所谓三重回文数a就是指a、a2、a3都是回文数字。

    4、输入x、n后输出下列算式的值,fact(n)实现n!,mypow(x,n)实现x^n。

    #include<stdio.h>
    #include<math.h>
    int main(void)
    {
        int x,i,n;
        double s;
        s=0;
        double fact(int n);
        double mypow(int x,int n);
        printf("enter x,n:");
        scanf("%d%d",&x,&n);
        for(i=1;i<=n;i++)
        {
            s=s+pow(-1,i-1)*mypow(x,n)/fact(n);
        }
        printf("s=%.3f",s);
        return 0;
    }
    //计算n的阶层
    double fact(int n)
    {
        int i;
        double result;
        result=1;
        for(i=1;i<=n;i++)
        {
            result=1*result;
        }
        return result;
    }
    //不用数学公式,用调用函数计算x^n
    double mypow(int x,int n)
    {
        double result;
        result=1;
        int i;
        for(i=1;i<=n;i++){
            result=result*x;
        }
        return result;
    }

     5、按下面要求编写程序:
    (1)定义函数f(n)计算n+(n+1)+…+(2n-1),函数返回值类型是double。
    (2)在主函数main(),输入正整数n,计算并输出下列算式的值。要求调用函数f(n)计算n+(n+1)+…+(2n-1)。

    #include<stdio.h>
    int main(void)
    {
        double f(int n);
        double s=0;
        int n;
        printf("enter n:");
        scanf("%d",&n);
        //自定义函数f(n)来计算
        s=f(n)+s;
        //输出s的值
        printf("s=%.3f",s);
        return 0;
    }
    double f(int n)
    {
        double result,t;
        int i;
        
        result=0;
        t=0;
        //循环整个的
        for(i=1;i<=n;i++){
            //输出每个的小部分
            for(i=1;i<=2*n-1;i++)
            {
                t=i+t;
            }
            result=result+1/t;
        }
        return result;
    }
  • 相关阅读:
    对国内技术社区
    github访问慢
    MVC 框架搭建
    EntityFramework与Ado.net的对比——EF优势何在?
    什么是DTO ,DTO 有什么作用
    一些有趣的资源推荐
    解决sublime text 3使用Install Package时出现There are no packages available for installation问题
    基于CentOS7的服务器搭建(LAMP环境)
    Windows下UEFI环境的搭建
    Ubuntu16.04下搜狗输入法、Sublime Text 3的安装
  • 原文地址:https://www.cnblogs.com/wuyanlong/p/3417201.html
Copyright © 2020-2023  润新知