Все числа матрицы заменить на их квадраты - C (СИ)

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

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

в двумерном массиве К ( 4,8) в строке , содержащей максимаольный элемент , все числа заменить на их квадраты

Решение задачи: «Все числа матрицы заменить на их квадраты»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int * max_element(const int * arr, size_t count) {
    return ( count < 2 ) ? (int*)arr : ( *arr < *(arr + count - 1) ) ? max_element(arr + 1, count -1) : max_element(arr, count - 1);
}
 
void random_fill(int * arr, size_t count, const int low, const int high) {
    while ( count-- )
        *arr++ = rand() % ( high - low + 1 ) + low;
}
 
void dump(const int * arr, size_t count, const size_t width) {
    while ( count-- )
        printf("%*d%c", width, *arr++, ( count ) ? ' ' : '\n');
}
 
#define ROWS 4
#define COLUMNS 8
#define LOW 0
#define HIGH 99
#define WIDTH 2
 
int main(void) {
    int matrix[ROWS][COLUMNS], maxvalues[ROWS], * maxvalptr;
    size_t i;
    
    srand(time(NULL));
    
    printf("Before:\n");
    for ( i = 0; i < ROWS; ++i ) {
        random_fill(matrix[i], COLUMNS, LOW, HIGH);
        dump(matrix[i], COLUMNS, WIDTH);
        maxvalues[i] = *max_element(matrix[i], COLUMNS);
    }
    
    printf("\nAfter:\n");
    maxvalptr = max_element(maxvalues, ROWS);
    for ( i = 0; i < COLUMNS; ++i )
        matrix[maxvalptr - maxvalues][i] *= matrix[maxvalptr - maxvalues][i];
    for ( i = 0; i < ROWS; ++i )
        dump(matrix[i], COLUMNS, WIDTH * 2);
    
    return 0;
}

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

Вывод: Код генерирует случайные значения в диапазоне от 0 до 99 для каждого элемента матрицы размером 4x8. Затем он находит максимальное значение в каждой строке и заменяет его на квадрат этого значения. В конце он выводит матрицу до и после замены. Список действий:

  1. Включаем необходимые заголовочные файлы
  2. Определяем параметры программы: количество строк и столбцов матрицы, минимальное и максимальное значения для заполнения матрицы, ширину вывода
  3. Создаем матрицу и массив для хранения максимальных значений в каждой строке
  4. Инициализируем генератор случайных чисел
  5. Выводим матрицу до замены
  6. Находим максимальное значение в каждой строке и сохраняем его в массив
  7. Заменяем найденное максимальное значение на квадрат этого значения
  8. Выводим матрицу после замены

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


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

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

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