关于指针的学习

 

1.指向函数的指针:

声明:数据类型(*f)(参数数据类型)

定义方式;f=函数名

调用方式;f(参数)

double(*f)(double);

double anyfun(double(*f)(double), double x)
{
	//return (*f)(x);
	return f(x);//调用指向函数的指针 
}

if(n==1){
		f=caesar;
		//*f=caesar;//
	}
	if(n==2){
		f=oddeven;
		//*f=oddeven;
	}
//1
#include "iostream"
#include "cmath"

using namespace std;

double x2(double x)
{
	return x*x;
}

double mysin(double x)
{
	return 2 * sin(2 * 3.14 * 2 * x + 3.14);
}

double anyfun(double(*f)(double), double x)
{
	//return (*f)(x);
	return f(x);//调用指向函数的指针 
}
/*
int main()
{
	double(*f)(double);  定义指向函数的指针 
	double x;
	cin >> x;
	f = x2;
	cout << f(x) << " ";
	f = mysin;
	cout << f(x) << endl;
	return 0;
}*/
int main()
{
	double x;
	cin >> x;
	cout << anyfun(x2, x) << " ";
	cout << anyfun(mysin, x) << endl;
	return 0;
}
//2.
#include "iostream"
#include "cmath"

using namespace std;
double myexp(double x){return exp(x);//不能起名为exp,有二义性 
} 
double mysin(double x){return sin(x);
} 
double mycos(double x){return cos(x);
} 
double funavg(double(*f)(double),double a,double b,int n){
	double avg=0.0;
	for(int i=0;i<n+1;i++){
		avg+=f(a+i*(b-a)/n);
	}
	avg=avg/(n+1);
	return avg;
}
int main(){
	double a,b;
	cin>>a>>b;
	cout<<funavg(myexp,a,b,1000)<<" "<<funavg(mysin,a,b,1000)<<" "<<funavg(mycos,a,b,1000)<<endl;
	return 0;
}
//3.
#include "iostream"
#include "cmath"

using namespace std;
int input (int *p){
	int n=0;
	int temp;
	cin>>temp;
	while(temp!=9999){
		*p=temp;
		n++;
		p++;
		cin>>temp;
	}
	return n;
}
void print(int *p ,int n){
	/*cout<<*p; 
	p++;
	for(int i=1;i<n;i++){
		cout<<" "<<*p;
		p++;
	
	}
	cout<<endl;*/
	cout << *p;
	p++;
	n--;
	while(n)
	{
		cout << " " << *p;
		p++;
		n--;
	}
	
}
int main(){
	/*int a[100],n;
	int* p;
	n=input(p);
	print(p,n);*/
	int a[100],n;
	n=input(a);
	print(a,n);
	return 0;
}
	
	
return a*x*x+b*x+c;//不能用^2 
x^m//int(pow(x,m))


if(n==1){
		f=caesar;
		//*f=caesar;//
	}
	if(n==2){
		f=oddeven;
		//*f=oddeven;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值