SDUT ACM OJ 实验七 函数应用

A - C语言实验——计算表达式

#include <stdio.h>
#include<math.h>
float f(double x,int n)
{
    double i,t=0;
    for(i=1;i<=n;i++)
    {x=sqrt(x+i);t+=x;}
    return x;             
}
int main()
{
    double x,i;
    int n;
    scanf("%lf%d",&x,&n);
    x=f(x,n);
    printf("%.2lf\n",x);
}

B - 求数列的和

#include <stdio.h>
#include<math.h>
float f(double m,int n)
{
    double t=0,i;
    for(i=1;i<=n;i++)
    {t+=m;m=sqrt(m);}
    return t;
}
int main()
{
    double m,t;
    int n;
    while(~scanf("%lf %d",&m,&n))
    {
        t=f(m,n);
        printf("%.2lf\n",t);
    }
}

C - C语言实验——一元二次方程Ⅰ

#include <stdio.h>
#include<math.h>
void f(double a,double b,double c)
{
    double x,y,t;
    double d=sqrt(b*b-4*a*c);
    x=(-b+d)/(2.0*a);
    y=(-b-d)/(2.0*a);
    if(y>x){t=x;x=y;y=t;}
    printf("%.2lf %.2lf",x,y);
}
int main()
{
    double a,b,c;
    scanf("%lf %lf %lf",&a,&b,&c);
    f(a,b,c);
    return 0;
}

D - 求三角形面积

#include <stdio.h>
#include<math.h>
double f(double a,double b,double c)
{
    double s,p;
    p=(a+b+c)/2;
    s=sqrt(p*(p-a)*(p-b)*(p-c));
    return s;
}
int main()
{
    double a,b,c,s;
    scanf("%lf %lf %lf",&a,&b,&c);
    s=f(a,b,c);
    printf("%.3lf",s);
}

E - 求实数绝对值

#include <stdio.h>
#include<math.h>
double f(double a)
{
    return abs(a);
}
int main()
{
    double a;
    while(~scanf("%lf",&a))
    {
        a=f(a);
        printf("%.2lf\n",a);
    }
}

F - C/C++程序训练6—歌德巴赫猜想的证明

#include <stdio.h>
#include<math.h>
int f(int x)
{
    int i;
    for(i=2;i<=sqrt(x);i++)
    {if(x%i==0) break;}
    if(i>sqrt(x)) x=0;
    return x;
}
int main()
{
    int n,i,j,x,y;
    scanf("%d",&n);
    for(i=2;i<=n/2;i++)
    {
        x=1;
        y=1;
        j=n-i;
        y=f(j);
        x=f(i);
        if(x==0&&y==0){printf("%d=%d+%d",n,i,j);break;}
    }
}

G - N!

#include <stdio.h>
long long int f(int n,int m)
{
    long long int a=1;
    int i;
    for(i=n;i>n-m;i--){a*=i;}
    return a;
}
int main()
{
    int m,n;
    long long int a,c;
    while(~scanf("%d %d",&n,&m))
    {
    a=f(n,m);
    c=a/f(m,m);
    printf("%lld %lld\n",a,c);
    }
}

H - 分段函数

#include <stdio.h>
#include<math.h>
double f(double x)
{
    double y;
    if(x>0&&x<10)y=log(x)/log(2);
    else if(x>=10)y=x*x;
    else if(x<0)y=abs(x)+sin(x);
    else if(x=0)y==0;
    return y;
}
int main()
{
    int x,n,i;
    double y;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&x);
        y=f(x);
        printf("%.2lf\n",y);
    }
}

I - C/C++经典程序训练2—斐波那契数列

#include <stdio.h>
int f(int n)
{
    int y;
    if(n==1||n==2)y=1;
    else if(n>=3)y=f(n-1)+f(n-2);
    return y;
}
int main()
{
    int n,y;
    scanf("%d",&n);
    y=f(n);
    printf("%d",y);
}

J - 计算题

#include <stdio.h>
int f(int m,int n)
{
    int y;
    if(m==1)y=n;
    if(n==1)y=m;
    if(m>1&&n>1)y=f(m-1,n)+f(m,n-1);
    return y;
}
int main()
{
    int n,m,y,i,a;
    scanf("%d",&a);
    for(i=1;i<=a;i++)
    {
        scanf("%d %d",&m,&n);
        y=f(m,n);
        printf("%d\n",y);
    }
}

K - 斐波那契?

#include <stdio.h>
int f(int n)
{
    int y;
    if(n==1)y=2;
    else if(n==2)y=3;
    else if(n==3)y=5;
    else if(n>=4)y=f(n-1)+f(n-2)-f(n-3);
    return y;
}
int main()
{
    int n,y;
    scanf("%d",&n);
    y=f(n);
    printf("%d",y);
}

L - 高中数学?

#include <stdio.h>
int f(int n)
{
    int y;
    if(n==1)y=0;
    else if(n==2)y=1;
    else if(n>2)y=4*f(n-1)-5*f(n-2);
    return y;
}
int main()
{
    int n,t,i,y;
    scanf("%d",&t);
    for(i=0;i<t;i++)
    {
        scanf("%d",&n);
        y=f(n);
        printf("%d\n",y);
    }
}

M - 计算组合数

#include <stdio.h>
int f(int n,int m)
{
    int y;
    if(m==0||n==1||m==n)y=1;
    else y=f(n-1,m-1)+f(n-1,m);
    return y;
}
int main()
{
    int n,m,t,i,y;
    scanf("%d",&t);
    for(i=0;i<t;i++)
    {
        scanf("%d %d",&n,&m);
        y=f(n,m);
        printf("%d\n",y);
    }
}

不懂得可以私信我,随时解答。
程序有错误请私信我,以及时改正。感谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值