Найти среднеарифметическое максимальных элементов в каждой строке матрицы - C (СИ)

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

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

Здравствуйте, помогите пожалуйста. Задание: a) Статическая память. Двумерный массив. Дан массив целых чисел. Найти среднеарифметическое максимальных элементов в каждой строке. b) Динамическая память. Одномерный массив. Дан массив вещественных чисел. Правда ли, что цифры минимального элемента входят в состав максимального числ Исходный код программы для пункта а:
#include <stdio.h>
#include <time.h>
int main ()
{
    //a) Статическая память. Двумерный массив. Найти сумму элементов больше 15.    
//Заводим значение о количетсве строк и столбцов массива. 
int n=0, m=0;
    printf ("Enter number rows and colums in massive\n");
    scanf("%d%d",&n,&m);
    //Инициализируем массив. 
int mas[n][m];
    //Использование системного времени
srand(time(NULL));
    //Заполнение массива случайными числами
int i=0, j=0;
    for(i = 0; i < n; i++)
        for(j = 0; j < m; j++)
            mas[i][j] = rand() %100 + 1;
    //Вывод массива
printf("\nThe initial array of [%d, %d]:\n", n, m);
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < m; j++)
            printf("%3d   ", mas[i][j]);
        printf("\n");
    }
//Нахождение суммы элементов
int sum = 0; //переменная для хранения суммы
    for(i = 0; i < n; i++)
        for(j = 0; j < m; j++)
            if (mas[i][j]>15)
                sum+=mas[i][j];
    printf("\nSumma elements = %2d\n", sum);
    return 0;
Исходный код программы для пункта б:
#include <stdio.h>
#include <malloc.h>
#include <time.h>
int main ()
{
    //b) Динамическая память. Одномерный массив. Определить количество чётных элементов и
заканчивающихся на 3. 
    //Вводим информацию о количетсве элементов массива. 
int n=0;
    printf ("Enter number elements in massive\n");
    scanf("%d",&n);
    //Инициализируем массив.     
int  *arr;
    arr = (int *) (malloc(n*sizeof(int)));
    if (!arr) // условие логического отрицания
    { // выход за пределы памяти
        printf("Out of memory. Press any key: ");
        return 1;
    }  
//Использование системного времени
srand(time(NULL));                            
    //Заполнение массива случайными числами
int i=0;
    for(i = 0; i < n; i++)          
        arr[i] = rand() %1000 + 1;    
    //Вывод массива
printf("\nThe initial array of [%d]:\n", n);
    for(i = 0; i < n; i++)            
        printf("%3d   ", arr[i]);       
    //поиск четных элементов
int sum1 = 0; //сумма четных элементов
    int sum2 = 0; //сумма элементов заканчивающихся на 3
    for(i = 0; i < n; i++)                
        if (arr[i]%2==0)
            sum1+=arr[i];
        else if (arr[i]%10==3)
            sum2+=arr[i];
printf ("\nsumma chentnih elementov = %d \nsumma elementov on 3 = %d ", sum1, sum2);
    return 0;
Спасибо!

Решение задачи: «Найти среднеарифметическое максимальных элементов в каждой строке матрицы»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define ROW 5
#define COLUMN 5
 
int main()
{
    int mass[ROW][COLUMN];
    int max[ROW];
    float res = 0;
    int i,j;
 
    srand(time(NULL));
 
    for(i = 0; i < ROW; i++)
    {
        for(j = 0; j < COLUMN; j++)
        {
            mass[i][j] = rand() % 20 - 10;
            printf("%5d",mass[i][j]);
        }
 
        printf("\n");
    }
 
    for(i = 0; i < ROW; i++)
    {
        max[i] = mass[i][0];
 
        for(j = 1; j < COLUMN; j++)
            max[i] = max[i] < mass[i][j] ?
                 mass[i][j] : max[i];
 
        res += max[i];
    }
 
    printf("Среднее арифметическое максимумов: %.1f\n",res/ROW);
 
    return 0;
}

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

  1. Включаем необходимые заголовочные файлы для работы с I/O и генерации случайных чисел
  2. Определяем размерность матрицы (ROW x COLUMN)
  3. Инициализируем матрицу случайными числами от -10 до 10
  4. Выводим значения матрицы на экран
  5. Инициализируем переменную для хранения максимального элемента в каждой строке матрицы
  6. Проходим по каждой строке матрицы
  7. В каждой строке находим максимальный элемент и обновляем значение переменной max[i]
  8. Суммируем все максимальные элементы и сохраняем в переменную res
  9. Вычисляем среднее арифметическое максимальных элементов и выводим на экран
  10. Возвращаем 0, чтобы указать на успешное завершение программы

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


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

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

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