a,len,condの3つの引数をとり、配列の中にcondで示される条件を満たすものが含まれれば真、そうでなければ偽を返す関数findを定義しています。
条件は配列の中に偶数が含まれているかどうか、です。
引数はそれぞれ、a:int型の配列の先頭アドレス,len:配列の要素数,cond:値を受け取り、その値が条件を満たすかどうかを真偽値で返す関数へのポインタとなっています。
前置きが長くなりましたが、main関数でfind関数を呼び出すときの第3引数を何にしたら良いかがわかりません。
C++
1#include<stdio.h> 2 3static int even(int element){ 4 return (element % 2) == 0; 5} 6 7int find(int* a, int len, void (*cond)(int)){ 8 for (int i = 0; i < len; i++){ 9 int (*cond)(int) = even; 10 if(cond){ 11 return 1; 12 } 13 } 14 return 0; 15} 16 17int main(){ 18 int x[] = {1, 3, 5, 7}; //偶数なし 19 int y[] = {1, 3, 6,9}; //偶数あり 20 21 printf("even elements in x? %s\n", 22 (find(x, 4, /*ここがわからない*/) ? "yes" : "no")); 23 printf("even elements in y? %s\n", 24 (find(y, 4, /*ここがわからない*/) ? "yes" : "no")); 25 return 0; 26}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2022/05/12 12:58