Функция в качества аргумента другой функции. Ошибка компиляции - C (СИ)
Формулировка задачи:
Две функции:
Программный код:
Ошибки при компиляции:
pe12_2b.c: In function ‘main’:
pe12_2b.c:14:3: error: incompatible type for argument 1 of ‘show_info’
show_info(get_info, mode);
^
In file included from pe12_2b.c:2:0:
pe12_2a.h:3:6: note: expected ‘double’ but argument is of type ‘double (*)(int)’
void show_info(double flow, int mode);
double get_info(int mode) { int distance, flow_of_fuel; double result; mode == 0 ? printf("Введите пройденное расстояние в километрах.\n") : printf("Введите пройденное расстояние в милях.\n"); scanf("%d", &distance); mode == 0 ? printf("Введите количество израсходованного горючего в литрах.\n") : printf("Введите количество израсходованного горючего в галлонах.\n"); scanf("%d", &flow_of_fuel); return (double)flow_of_fuel*100/distance;; } void show_info(double flow, int mode) { mode == 0 ? printf("Расход горючего составляет %.2f литров на 100 км.", flow) : printf("Расход горючего составляет %.2f галлонов на 100 милль.", flow); }
show_info(get_info, mode);
Решение задачи: «Функция в качества аргумента другой функции. Ошибка компиляции»
textual
Листинг программы
int set_mode(int mode); double get_info(int mode); void show_info(double flow, int mode);
Объяснение кода листинга программы
- В коде присутствуют три функции:
set_mode
,get_info
иshow_info
. - Функция
set_mode
принимает целочисленный аргументmode
. - Функция
get_info
принимает целочисленный аргументmode
и возвращает значение типаdouble
. - Функция
show_info
принимает два аргумента:flow
типаdouble
иmode
типаint
. - В коде присутствует ошибка компиляции.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д