Untitled
unknown
c_cpp
3 years ago
2.0 kB
9
Indexable
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <malloc.h> #include <locale.h> float** createMatrix(int size, int type) { int i, j, check = 1; float** matrix; matrix = (float**)malloc(sizeof(float*) * size); for (i = 0; i < size; i++) { matrix[i] = (float*)malloc(sizeof(float) * size); if (type == 'B') continue; for (j = 0; j < size; j++) { printf("[%d][%d]: ", i, j); check = scanf("%f", &matrix[i][j]); if (check != 1){ printf("Вы ввели неверное значение элемента матрицы. Перезапустите программу."); return 0; } } } return matrix; } void printMatrix(float** matrix, int matrixSize) { int i, j; for (i = 0; i < matrixSize; i++) { for (j = 0; j < matrixSize; j++) { printf("%f ", matrix[i][j]); } printf("\n"); } } float calculateElement(float** matrixA, int size, int i, int j) { float min = matrixA[i][j]; int startIndex = j; for (i; i >= 0; i--) { for (j; j < size; j++) { if (min > matrixA[i][j]) { min = matrixA[i][j]; } } j = startIndex; } return min; } void buildMatrix(float** matrixA, float** matrixB, int size) { int i, j; for (i = 0; i < size; i++) { for (j = 0; j < size; j++) { matrixB[i][j] = calculateElement(matrixA, size, i, j); } } } int main() { setlocale(LC_ALL, "Russian"); int size, check = 1; float **matrixA, **matrixB; printf("Введите размер квадратной матрицы (меньше 20): "); check = scanf("%d", &size); if (check != 1 || size > 20 || size < 1) { printf("Неверный размер"); return 0; } printf("\nMatrix A:\n"); matrixA = createMatrix(size, 'A'); if (matrixA == 0) { return 0; } matrixB = createMatrix(size, 'B'); printMatrix(matrixA, size); buildMatrix(matrixA, matrixB, size); printf("\nMatrix B: \n"); printMatrix(matrixB, size); }
Editor is loading...