注册 登录
编程论坛 C++教室

重载函数求a0+a1*x+a2*x*x+a3*x*x*x 求助

Pu2018303078 发布于 2018-11-08 11:05, 1954 次点击
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
6 回复
#2
rjsp2018-11-08 11:12
你的代码呢?
#3
Pu20183030782018-11-08 12:05
回复 2楼 rjsp
我不会写这个代码,所以求助大佬给个代码
#4
Pu20183030782018-11-08 13:06
回复 2楼 rjsp
#include <iostream>
using namespace std;
double f (double x,double a0,double a1=0,double a2=0,double a3=0)
{
    return a0+a1*x+a2*x*x+a3*x*x*x;
}
int main()
{
    int n;double x,a0,a1,a2,a3,A[4];
    cin>>x>>n;
    for(int i=1;i<=n+1;i++)
        cin>>A[i];
    cout<<f(x,a0,a1,a2,a3);
    return 0;
}
输出一直是0,怎么破?请教
#5
rjsp2018-11-08 13:22
for(int i=1;i<=n+1;i++)
下标请从0开始计数。

根据你的代码修改
程序代码:
#include <iostream>
using namespace std;

double f( double x, double a0, double a1=0, double a2=0, double a3=0 )
{
    return a0+a1*x+a2*x*x+a3*x*x*x;
}

int main( void )
{
    double x;
    size_t n;
    cin >> x >> n;

    double a[4] = {};
    for( size_t i=0; i!=n+1; ++i )
        cin >> a[i];

    cout << f(x,a[0],a[1],a[2],a[3]) << endl;
}


根据题目要求修改,以体现出重载的作用
程序代码:
#include <iostream>
using namespace std;

double fun( double x, double a0, double a1=0, double a2=0, double a3=0 )
{
    return a0+a1*x+a2*x*x+a3*x*x*x;
}

int main( void )
{
    double x;
    size_t n;
    cin >> x >> n;

    double a0, a1, a2, a3;
    if( n == 0 )
    {
        cin >> a0;
        cout << fun(x,a0) << endl;
    }
    else if( n == 1 )
    {
        cin >> a0 >> a1;
        cout << fun(x,a0,a1) << endl;
    }
    else if( n == 2 )
    {
        cin >> a0 >> a1 >> a2;
        cout << fun(x,a0,a1,a2) << endl;
    }
    else if( n == 3 )
    {
        cin >> a0 >> a1 >> a2 >> a3;
        cout << fun(x,a0,a1,a2,a3) << endl;
    }
}

#6
Pu20183030782018-11-08 15:20
回复 5楼 rjsp
Thank you very much!
#7
rohalloway2018-11-08 21:10
以下是引用Pu2018303078在2018-11-8 15:20:19的发言:

Thank you very much!



楼主分享一下做题网站可以吗? 谢谢
1