Найти среднее значение двухмерного массива - C (СИ)
Формулировка задачи:
Листинг программы
- #include <stdio.h>
- double sum2d(int a, int b, const double mass[a][b]);
- int main(void)
- {
- const int YEARS = 5;
- const int MONTHS = 12;
- const float rain[YEARS][MONTHS] =
- {
- { 4.3, 4.3, 4.3, 3.0, 2.0, 1.2, 0.2, 0.2, 0.4, 2.4, 3.5, 6.6 },
- { 8.5, 8.2, 1.2, 1.6, 2.4, 0.5, 2.0, 9.0, 3.0, 9.1, 4.7, 3.0 },
- { 9.1, 8.5, 6.7, 4.3, 2.1, 0.8, 0.2, 0.2, 1.1, 2.3, 6.1, 8.4 },
- { 7.2, 9.9, 8.4, 3.3, 1.2, 0.8, 0.4, 0.0, 0.6, 1.7, 4.3, 6.2 },
- { 7.6, 5.6, 3.8, 2.8, 3.8, 0.2, 0.0, 0.0, 0.0, 1.3, 2.6, 5.2 },
- };
- printf("Среднегодовое количество осадков за 5 лет = %f",sum2d(YEARS, MONTHS, rain[YEARS][MONTHS])/YEARS);
- return 0;
- }
- double sum2d(int a, int b, const double mass[a][b])
- {
- int i, j;
- int total;
- double **pt;
- **pt = mass[0][0];
- for (i = 0; i < a; ++i)
- {
- for(j = 0; j < b; ++j)
- {
- total+=**pt;
- ++pt;
- }
- }
- return total;
- }
по заданию считать нужно с применением указателей.
Решение задачи: «Найти среднее значение двухмерного массива»
textual
Листинг программы
- #include <stdio.h>
- #define YEARS 5
- #define MONTHS 12
- double sum2d(int a, int b, double mass[][MONTHS]);
- int main(void)
- {
- double rain[YEARS][MONTHS] =
- {
- { 4.3, 4.3, 4.3, 3.0, 2.0, 1.2, 0.2, 0.2, 0.4, 2.4, 3.5, 6.6 },
- { 8.5, 8.2, 1.2, 1.6, 2.4, 0.5, 2.0, 9.0, 3.0, 9.1, 4.7, 3.0 },
- { 9.1, 8.5, 6.7, 4.3, 2.1, 0.8, 0.2, 0.2, 1.1, 2.3, 6.1, 8.4 },
- { 7.2, 9.9, 8.4, 3.3, 1.2, 0.8, 0.4, 0.0, 0.6, 1.7, 4.3, 6.2 },
- { 7.6, 5.6, 3.8, 2.8, 3.8, 0.2, 0.0, 0.0, 0.0, 1.3, 2.6, 5.2 },
- };
- printf("Среднегодовое количество осадков за 5 лет = %6.2f\n",sum2d(YEARS, MONTHS, rain)/YEARS);
- return 0;
- }
- double sum2d(int a, int b, double mass[][MONTHS])
- {
- int i, j;
- double total = 0;
- double *pt;
- pt = (double*)mass;
- for (i = 0; i < a; ++i)
- {
- for(j = 0; j < b; ++j)
- total+=*(pt++);
- }
- return total;
- }
Объяснение кода листинга программы
- Включаем файл стандартного ввода/вывода
- Определяем две константы: YEARS (количество лет) и MONTHS (количество месяцев в году)
- Функция sum2d принимает три аргумента: a и b - целочисленные значения, mass - двумерный массив. Возвращает сумму элементов двумерного массива.
- В функции main создаем двумерный массив rain и инициализируем его значениями.
- Вызываем функцию sum2d, передавая ей значения YEARS, MONTHS и rain. Результат вычисления среднего значения записываем в переменную total.
- Выводим на экран значение total с помощью функции printf.
- В функции sum2d объявляем переменные i и j для циклов, а также переменную total для хранения суммы.
- С помощью указателя pt получаем доступ к элементам массива mass.
- Внутренний цикл проходит по всем элементам строки массива mass.
- Внешний цикл проходит по всем строкам массива mass.
- Суммируем значения элементов массива mass, передавая их в функцию printf для вывода на экран.
- Возвращаем значение total.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д