ID非公開

2021/2/14 6:47

33回答

2つの入力した値を各々2乗して足し算するプログラムを教えてください。 ※C言語 ※2乗する関数の自作 ※正しく結果が表示されませんでした

C言語関連 | プログラミング17閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

1

1人がナイス!しています

その他の回答(2件)

1

#include <stdio.h> // 単項演算と二項演算を適用した結果を返す関数 static int transform_reduce(const int* first, const int* last, int init, int (*const binary_op)(int, int), int (*const unary_op)(int)); // 和を取る関数 static inline int add(int lhs, int rhs) {     return lhs + rhs; } // 2乗する関数 static inline int pow2(int value) {     return value * value; } int main(void) {     int numbers[2] = {0};     scanf("%d%d", &numbers[0], &numbers[1]);     // 各々2乗して和をとる     int result = transform_reduce(numbers, numbers + 2, 0, add, pow2);     printf("%d\n", result); } static int transform_reduce(const int* first, const int* last, int init, int (*const binary_op)(int, int), int (*const unary_op)(int)) {     int ret = init;     for (const int* it = first; it != last; ++it) {         ret = binary_op(ret, unary_op(*it));     }     return ret; }

1人がナイス!しています