Функция в качества аргумента другой функции. Ошибка компиляции - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Две функции:
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);
Ошибки при компиляции: 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);

Решение задачи: «Функция в качества аргумента другой функции. Ошибка компиляции»

textual
Листинг программы
int set_mode(int mode);
double get_info(int mode);
void show_info(double flow, int mode);

Объяснение кода листинга программы

  1. В коде присутствуют три функции: set_mode, get_info и show_info.
  2. Функция set_mode принимает целочисленный аргумент mode.
  3. Функция get_info принимает целочисленный аргумент mode и возвращает значение типа double.
  4. Функция show_info принимает два аргумента: flow типа double и mode типа int.
  5. В коде присутствует ошибка компиляции.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы