《C 언어 입문 경전》 Ivor Horton 제9장 연습문제

1971 단어 함수.귀속C 언어
</pre><pre name="code" class="cpp">//  9.2       :
//double add(double a,double b);      //Returna a+b
//double subtract(double a,double b); //Returna a-b
//double multiply(double a,double b); //Returna a*b
//double array_op(double array[],size_t size,double(*pfun)(double,double));
//array_op().      :      、              
//,                          。   array_op()   ,
// subtract()          ,subtract()              。
//  ,   4   x1、x2、x3、x4   ,subtract()     x1-x2+x3-x4  。
//             x1*x2*x3*x4。
//		    main()           。
#include<stdio.h>
double add(double a,double b);
double subtract(double a,double b);
double multiply(double a,double b);
double array_op(double array[],size_t size,double (*pfun)(double,double));
int k=0;
int main(void)
{
	double a=0.0;
	double b=0.0;
	size_t size=0;
	double result=0.0;
	int i=0;
	int j=1;
	char y;
	double(*pfun)(double,double);
	double *array=NULL;
	array=(double*)malloc(j*8);
	do
	{
		printf("
1"); if(i>=j) { j++; array=(double*)realloc(array,j*8); } printf("
2"); scanf("%lf",&array[i++]); printf("
3"); }while((y=getchar())!='
'); for(int j=0;j<i;j++) printf("
%lf",array[j]); pfun=add; result=array_op(array,i,pfun); printf("
in add result=%lf",result); pfun=subtract; result=array_op(array,i,pfun); printf("
in subtract result=%lf",result); pfun=multiply; result=array_op(array,i,pfun); printf("
in multiply result=%lf",result); return 0; } double add(double a,double b) { return b+a; } double subtract(double a,double b) { return b-a; } double multiply(double a,double b) { return b*a; } double array_op(double array[],size_t size,double (*pfun)(double ,double)) { --size; if(size<=0) { return array[size]; } return pfun(array[size],array_op(array,size,pfun)); }

좋은 웹페이지 즐겨찾기