Untitled
unknown
c_cpp
3 years ago
2.0 kB
10
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...