Создать динамический массив из элементов, расположенных на главной диагонали матрицы - C (СИ)
Формулировка задачи:
Срочно помогите. Сижу на сдаче предмета. ЗАдачу желательно решитьна СИ, но можно и на С++
Дан двумерный массив целых чисел, содержащий 6 x 6 элементов. Создать динамический массив из элементов, расположенных на главной диагонали матрицы. Вычислить произведение элементов динамического массива.
актуально ещё
Решение задачи: «Создать динамический массив из элементов, расположенных на главной диагонали матрицы»
textual
Листинг программы
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
int main()
{
const int size = 6;
int i, j;
int Matrix[size][size];
for ( i = 0; i < size; i++)
{
for ( j = 0; j < size; j++)
{
Matrix[i][j] = rand()%10;
printf("%d ", Matrix[i][j]);
}
printf("\n");
}
int* p = malloc(sizeof(int)* size);
for(i = 0; i < size; ++i)
{
p[i] = Matrix[i][i];
printf("%d ",p[i]);
}
free(p);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Создается статический массив
Matrixразмером 6х6 и заполняется случайными целыми числами от 0 до 9 с помощью функцииrand(). - С помощью цикла
forиprintfвыводятся все элементы матрицы на экран. - Создается динамический массив
pразмером 6, инициализированный значениями главной диагонали матрицыMatrix. - С помощью цикла
forиprintfвыводятся все элементы динамического массива на экран. - Динамический массив
pосвобождается с помощью функцииfree(). - Программа возвращает 0, заканчивая свое выполнение.