C++实验

2017-03-16  本文已影响13人  Thirtiseven
#include <iostream>
using namespace std;

int sum(int a,int b){
    return a+b;
}

void xswap(int *a,int *b){
    int t = *a;
    *a = *b;
    *b = t;
}

int main(void){
    int a,b,c,(*p1)(int,int);
    void (*p2)(int *,int *);
    cout << "XXXXXXX";
    cin >> a >> b;
    p1 = sum;
    c = p1(a,b);
    p2 = xswap;
    p2(&a,&b);
    cout << c << endl;
    cout<<"a="<<a<<"b="<<b<<endl;
    return 0;
}

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;

double f1(double x){
    return x*x*x-6.0*x-1.0;
}

/*
double root(double (*f)(double),double begin,double end){
    double left = f(begin);
    double point = (begin + end)/2.0;
    double mid = f(point);
    if(fabs(mid) > 10e-8){
        if(left * mid > 0){
            point = root(f,point,end);      
        }else{
            point = root(f,begin,point);
        }
    }else{
        return point;
    }
}
*/

double root(double (*f)(double),double begin,double end){
    double left = f(begin);
    double point = (begin + end)/2.0;
    double right = f(end);
    double mid = f(point);
    while(fabs(mid) > 10e-8){
        point = (begin + end)/2.0;
        mid = f(point);
        if(left * mid > 0){
            begin = point;
        }else{
            end = point;
        }
    }
    return point;
}
上一篇 下一篇

猜你喜欢

热点阅读