Поэлементно вычесть последнюю строку из всех столбцов матрицы, кроме последнего - C (СИ)
Формулировка задачи:
Всем привет. Помогите решить.
1. Дана вещественная матрица А (8х8). Преобразовать матрицу: поэлементно вычесть последнюю строку из всех столбцов, кроме последнего.
2. В заданной целочисленной матрице размера mxn (m и n – некоторые константы) указать индексы всех элементов, имеющих наибольшее значение.
Спасибо.
Решение задачи: «Поэлементно вычесть последнюю строку из всех столбцов матрицы, кроме последнего»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> const int* max_element(const int **matrix, size_t rows, size_t columns) { int i, j; const int *ret_val = *matrix; if (rows == 0) return NULL; if (columns == 0) return NULL; for (i = 0; i < rows; i++) for (j = 0; j < columns; j++) if (matrix[i][j] > *ret_val) ret_val = &matrix[i][j]; return ret_val; } void print_indexes ( const int **matrix, size_t rows, size_t columns, int value, const char *fmt ) { int i, j; for (i = 0; i < rows; i++) for (j = 0; j < columns; j++) if (matrix[i][j] == value) printf(fmt, i, j); } int main(void) { size_t rows, columns, i, j; int **matrix; srand(time(0)); printf("Rows: "); if (scanf("%u", &rows) != 1) { fprintf(stderr, "Error reading variable"); exit(1); } printf("Columns: "); if (scanf("%u", &columns) != 1) { fprintf(stderr, "Error reading variable"); exit(1); } matrix = (int**)malloc(sizeof(int*) * rows); for (i = 0; i < rows; i++) { matrix[i] = (int*) malloc(sizeof(int) * columns); for (j = 0; j < columns; j++) printf("%4d ", matrix[i][j] = rand() % 20); putchar('\n'); } print_indexes(matrix, rows, columns, *max_element(matrix, rows, columns), "[%d, %d]\n"); for (i = 0; i < rows; i++) free(matrix[i]); free(matrix); return 0; }
Объяснение кода листинга программы
В этом коде:
- Создается матрица случайных целых чисел.
- Находится максимальное значение в матрице.
- Выводится на экран найденное максимальное значение и его координаты в матрице.
- Все элементы матрицы освобождаются, и сама матрица удаляется.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д