C/C++

Задание по C

Создать прямоугольную матрицу, размерность которой вводится с клавиатуры.
Требуется дополнить ее до квадратной. Заполнить новые элементы матрицы нулями. Результат вывести на экран. Использовать функцию malloc.
 #include  
#include

void print(size_t n, size_t m, int** matrix, char* end)
{
for(size_t i = 0; i < n; ++i) {
for(size_t j = 0; j < m; ++j)
printf("%4lu", matrix[i][j]);
printf("\n");
}
printf("%s", end);
}

int main()
{
size_t n, m;
scanf("%lu %lu", &n, &m);
int** matrix;

matrix = malloc(n * sizeof(int*));
for(size_t i = 0; i < n; ++i) {
matrix[i] = malloc(m * sizeof(int));
for(size_t j = 0; j < m; ++j)
matrix[i][j] = 10 * (i+1) + j+1;
}

print(n, m, matrix, "\n");

if(n < m) {
matrix = realloc(matrix, m * sizeof(int*));
for(size_t i = n; i < m; ++i) {
matrix[i] = malloc(m * sizeof(int));
for(size_t j = 0; j < m; ++j)
matrix[i][j] = 0;
}
n = m;
}
else if(m < n) {
for(size_t i = 0; i < n; ++i) {
matrix[i] = realloc(matrix[i], n * sizeof(int));
for(size_t j = m; j < n; ++j)
matrix[i][j] = 0;
}
m = n;
}

print(n, m, matrix, "\n");

for(size_t i = 0; i < n; ++i)
free(matrix[i]);
free(matrix);

return 0;
}
Владислав Калугин
Владислав Калугин
12 091
Лучший ответ
на си программируют контроллеры, а у вас я видел и электротехнику, а значит и учитесь на это. Так что учитесь, хоть на работу возьмут если вот эти минимальные знания покажете
Павел Джураев
Павел Джураев
83 640