C言語応用 関数 関数とは main関数 #include<stdio.h> int main(void) { printf(“%d\n”,5+3); return(0); } main関数 C言語のプログラムには、必ず1つのmain関数が必要 であり、プログラムの実行時には、main関数が実行さ れる。 関数とは ライブラリ関数 main関数だけが関数というわけではない。これま でに利用してきたprintf関数、scanf関数など、C言 語が提供する数多くの関数のことをライブラリ関 数と呼ぶ。 関数とは 自分で作成する関数 定義 int sum(int x, int y) { int goukei; goukei = x + y; return(goukei); } 呼び出し int main(void) { ・・・ wa = sum(x,y); ・・・ } http://www.center.nitech.ac.jp/~sfukui/ouyou/list6-1.c 関数定義 関数の返す値の型 関数名 仮引数の宣言 int sum ( int x, int y ) { int goukei; goukei = x + y; return(goukei); } 関数頭部 関数本体 値を返して呼び出し元に戻る 値を返す必要がない場合、return( )は必要なく、その場 合の関数の返値の型はvoid型となる。 関数定義 main 関数 wa = sum( a , b ); sum 関数 int x; int y; 仮 引 数 int goukei; goukei = x + y; return( goukei ); x 5 y 10 goukei 実 引 数 値渡し べき乗を求める関数 C言語では、引数が double pow(double x, int y) 値でやりとりされる。 { このようなメカニズム double power; を値渡しという。値渡 しのメリットは、受け for(power = 1.0 ; y > 0 ; y-- ) 取った仮引数の値を power *= x; 変更するような操作 return(power); をしても、呼び出し側 } の実引数の値を変更 しない点である。 http://www.center.nitech.ac.jp/~sfukui/ouyou/list6-2.c 関数の設計 関数の引数と戻り値 int search(void) { int i; for(i=0; i<MAX;i++) if(tensu[I] == 50) break; if(i == MAX) return (FAILED); return(i); } http://www.center.nitech.ac.jp/~sfukui/ouyou/list6-3.c 関数の設計 関数頭部では、()の中に引数の宣言を並べるが、今 回のsearch関数は受け取る引数がない。引数を受け 取らないことを示すためには()の中にvoidと記述する。 関数searchは、50点の学生を見つけると、その添え字 を返します。50点の学生が見つからなかった場合は、 FAILEDすなわち-1を返す。 関数の設計 関数と変数 int tensu[MAX]; int search(void) { int i; ・・・ } int main(void) { int i; ・・・ } グローバル変数 どこからでも使える ローカル変数 search関数内でのみ使える ローカル変数 main関数内でのみ使える 関数の設計 関数の汎用性 int search(int ten) { int i; for(i=0;i< MAX; i++) if (tensu[i] == ten) break; return(i == MAX ? FAILED : i) } search関数は、50点の 学生の学籍番号を求 めるものでした。別の 点数の学生の学籍番 号を求める必要性が出 てきたときに対応でき ない。そこで、探索すべ き点数を引数として受 け取る探索関数を作成 する。 http://www.center.nitech.ac.jp/~sfukui/ouyou/list6-4.c 条件演算子 ? と : のペアで構成される演算子は条件演算子と呼ば れ、この演算子が適用された式は条件式と呼ばれま す。 式1 ? 式2 : 式3 式1が非0のとき・・・式2の評価値 式1が 0のとき・・・式3の評価値 演習 受け取った引数xの階乗を返す関数fact int fact(int x){・・・}を作成せよ。 任意の点数以上の学生の人数を調査して 返すプログラムを作成せよ。 2つのint型引数を受け取って、大きい方の 値を返す関数 maxof int maxof(int x, int y){・・・} を作成せよ。ただし条件演算子を使うこと。
© Copyright 2024 ExpyDoc