Есть массив чисел - надо к каждому числу прицепить текст - C (СИ)
Формулировка задачи:
Есть массив чисел - надо к каждому числу прицепить текст и обратиться к получившемуся элементу как к функции
например
шаг 1. mass[3]={1,2,3}
шаг 2 mass[3]={fun1,fun2,fun3}
шаг 3 перебирая элементы в цикле обращаться к массиву функций mass[i], получать от нее число и класть в другой массив
О КАК!
Решение задачи: «Есть массив чисел - надо к каждому числу прицепить текст»
textual
Листинг программы
#include <stdio.h> #define STEPS (3) #define DATA_SIZE (5) double mul9(double n) { return n * 9.0; } double div5(double n ) { return n / 5.0; } double plus32(double n) { return n + 32.0; } typedef double (*func_t)(double); func_t functions[STEPS] = { mul9, div5, plus32 }; int main(void) { double cels[DATA_SIZE] = { 10, 20, 30, 40, 50 }, fahr[DATA_SIZE]; int i, j; for ( i = 0; i < DATA_SIZE; ++i ) { double n = cels[i]; for ( j = 0; j < STEPS; ++j ) n = functions[j](n); fahr[i] = n; } for ( i = 0; i < DATA_SIZE; ++i ) printf("C %f = F %f\n", cels[i], fahr[i]); return 0; }
Объяснение кода листинга программы
В этом коде выполняется преобразование температуры из градусов Цельсия в градусы Фаренгейта.
В функции main
создаются два массива: cels
(градусы Цельсия) и fahr
(градусы Фаренгейта).
Затем в цикле происходит преобразование: каждый элемент массива cels
последовательно проходит через три функции-обработчика, которые умножают значение на 9, делят на 5 и прибавляют 32 (что соответствует преобразованию в градусы Фаренгейта). Результат сохраняется в соответствующем элементе массива fahr
.
В конце программы выводится результат в формате C <значение в градусах Цельсия> = F <значение в градусах Фаренгейта>
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д