第 5 講 ;第 8 章 函 數;引例 1;引例2b;m1=cmpmax( a , b );
cmpmax(int x , int y ){ int z; z=x>y?x:y; return (z);};說 明;8.2 函數的調用;main( ){int i=2,p; p=f( i , ++i ); printf("%d\n",p);}int f(int a, int b){int c; if (a>b) c=1; else if (a= =b) c=0; else c = -1; return(c);};8.2.2 函數調用的方式;8.2.3 對被調用函數的說明;main(){ float add(); /*對被調用函數的聲明*/ float a,b,c; scanf("%f,%f",&a,&b); c=add(a,b); printf("sum is %f\n",c);}
float add(float x, float y) /*定義add函數*/{ float z; z=x+y; return(z);};8.3 函數定義的一般形式;函數類型 函數名(形參表) /* 函數首部 */{ 變量定義部分; /* 函數體 */ 函數實現過程; return 表達式;};8.4 函數參數和函數值;關于形參與實參的說明;8.4.2 函數的返回值;main(){float a,b; float c; scanf("%f,%f",&a, &b); c=max(a,b); printf("Max is %f \n",c);}
(int) max(float x, float y){ float z; z = x>y ? X : y ; return(z);};4)若被調函數中沒有return語句,則函數帶回的是一個不確定的值,沒有實際意義。5)為了明確表示“不帶回值”,可用“void”定義函數為“無類型”(或稱“空類型”)。如void printstar(){……}void print-message(){……}為減少出錯,凡不帶回值的函數,都應定義為void。;例8.5 調用函數計算圓柱體積 ;源程序;double cylinder (double r, double h) /* 函數首部 */{/* 函數體,寫在一對大括號內 */ double result;
result =3.1415926 * r * r * h; /* 計算圓柱體積 */return result; /* 返回運算結果*/};例8.6 輸出5之內的數字金字塔。;例8.7 輸入精度e,使用格里高利公式求π的近似值,精確到最后一項的絕對值小于e。要求定義和調用函數 funpi(e) 求π的近似值。;/* 用格里高利公式計算π的近似值,精度為e */#include #include int main (void){ double e, pi; double funpi (double e); printf ("Enter e:"); scanf ("%lf", &e); pi = funpi (e); printf ("pi = %f\n", pi);return 0;};double funpi (double e) { int denominator, flag; double item, sum; flag = 1; denominator = 1; item = 1; sum = 0; while (fabs (item) >= e){ item = flag * 1.0 / denominator; sum = sum + item; flag = -flag; denominator = denominator + 2; } return sum * 4;};例8.8 判斷素數的函數;#include #include main( )