Подсчитать среднее арифметическое элементов двумерного массива - C (СИ)

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

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

Задание: Подсчитать среднее арифметическое элементов двумерного массива. Ввод: Из консоли. Подается число n - количество строк и столбцов в массиве, затем элементы массива построчно. Ограничения: 1?n?100, -1000?Array[n]?1000, время работы программы не более 2 с. Вывод: Вещественное число с точностью 4 знака, равное среднему арифметическому элементов двумерного массива.

Решение задачи: «Подсчитать среднее арифметическое элементов двумерного массива»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4.  
  5. #define rand_generation
  6.  
  7. #ifdef rand_generation
  8. #include <time.h>
  9. #endif
  10.  
  11. int main() {
  12.     int n;
  13.     setlocale(LC_ALL, "");
  14.  
  15. #ifdef rand_generation
  16.     srand((unsigned)time(NULL));
  17. #endif
  18.  
  19.     while (1) {
  20.         printf("Введите n  с отрезка [1;100]: ");
  21.         scanf("%i", &n);
  22.         if (n > 0 && n <= 100)
  23.             break;
  24.         else printf("Неверный ввод!!! Попробуйте снова!!!\n");
  25.     }
  26.     int** Array = (int**)malloc(sizeof(int*)*n);
  27.     int i = 0, j;
  28.     float middle_ar = 0.0f;
  29.     for (; i < n; i++) {
  30.         Array[i] = (int*)malloc(sizeof(int)*n);
  31.         for (j = 0;j < n;j++) {
  32. #ifndef rand_generation
  33.             while (1) {
  34.                 printf("Введите Array[%i][%i] с отрезка [-1000;1000]: ", i, j);
  35.                 scanf("%i", &Array[i][j]);
  36.                 if (Array[i][j] >= -1000 && Array[i][j] <= 1000)
  37.                     break;
  38.                 else printf("Неверный ввод!!! Попробуйте снова!!!\n");
  39.             }
  40. #elif defined rand_generation
  41.             Array[i][j] = rand() % 2001 - 1000;
  42.             printf("%i\t", Array[i][j]);
  43. #endif
  44.             middle_ar += (float)Array[i][j];
  45.         }
  46.         printf("\n");
  47.     }
  48.     printf("\nСреднее арифметическое массива: %.4f", middle_ar / (n*n));
  49.     return NULL;
  50. }

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

  1. Включаются необходимые заголовочные файлы: stdio.h, stdlib.h, locale.h
  2. Определяется макрос rand_generation, который в дальнейшем будет использоваться для генерации случайных чисел.
  3. Если макрос rand_generation определен, то включается time.h для инициализации генератора случайных чисел.
  4. Объявляется переменная n типа int, которая будет использоваться для хранения размера массива.
  5. Устанавливается локальная настройка для вывода русского языка.
  6. Если макрос rand_generation определен, то генерируется начальное значение для генератора случайных чисел.
  7. В цикле while(1) происходит запрос на ввод значения переменной n и проверка корректности введенного значения.
  8. Если значение n больше 0 и меньше или равно 100, то цикл прерывается и происходит переход к следующему этапу.
  9. В случае неверного ввода, программа выводит сообщение об ошибке и просит повторить попытку.
  10. Динамически выделяется память под двумерный массив типа int.
  11. Инициализируются начальные значения i и j, которые будут использоваться для обхода массива.
  12. Создается переменная middle_ar типа float, которая будет использоваться для хранения суммы элементов массива.
  13. В цикле for происходит обход всех элементов массива.
  14. Для каждого элемента массива динамически выделяется память под одномерный массив типа int.
  15. В цикле for происходит обход всех элементов второмерного массива.
  16. Если макрос rand_generation не определен, то происходит запрос на ввод значения элемента массива и проверка корректности введенного значения.
  17. Если значение элемента массива введено корректно, то происходит добавление этого значения к переменной middle_ar.
  18. Если макрос rand_generation определен, то происходит вывод значения элемента массива.
  19. После завершения циклов происходит вывод суммы элементов массива.
  20. Возвращается NULL.

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


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

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

8   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы