作业4函数应用

//定义函数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;
}

//编写一个程序,判断从键盘接收的数字是否为回文数字。回文数字就是顺着看和倒着看是相同的数。如121、656、2332等。
#include<stdio.h>
int main(void)
{
    int i,n;
    int x,y;//x是开始计算的数组下标,而y是末尾计算的数组下标
    x=0;//给x,y赋予初值
    y=0;
    printf("enter n:");
    scanf("%d",&n);
    //定义并输入数组
    int a[80];
    //运用for循环输入数组
    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;
}

//输入x、n后输出下列算式的值,fact(n)实现n!,mypow(x,n)实现x^n
#include<stdio.h>
#include<math.h>//运用数学公式的时候必须用到的
int main(void)
{
    int x,i,n;//x用来计算他的阶层
    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++)
    //用fact和mypow这两个自定义函数
    {
        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;
}

//输入2个正整数m和n(1≤m,n≤1000),输出m~n之间的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。
#include<stdio.h>
#include<math.h>
int main(void)
{
    int n,m,i;//m>=1,n<1000
    int x,y,z;//x是个位数,y是十位数字,z是百味数字
    x=0,y=0,z=0;//给x,y,z给于初值
    printf("enter m,n:");
    scanf("%d%d",&m,&n);//输入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\n",i);
        if(x+y+z==i)
          printf("%d各位数字之和等于其自身\n",i);
    }
    return 0;
}

posted @ 2013-11-10 19:04  plusfancy  阅读(581)  评论(0编辑  收藏  举报