Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
glesio
0 / 0 / 0
Регистрация: 16.02.2013
Сообщений: 80
1

Создать динамический массив из элементов, расположенных на главной диагонали матрицы

11.11.2013, 19:00. Просмотров 1063. Ответов 6
Метки нет (Все метки)

Срочно помогите. Сижу на сдаче предмета. ЗАдачу желательно решитьна СИ, но можно и на С++

Дан двумерный массив целых чисел, содержащий 6 x 6 элементов. Создать динамический массив из элементов, расположенных на главной диагонали матрицы. Вычислить произведение элементов динамического массива.

Добавлено через 28 минут
актуально ещё
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2013, 19:00
Ответы с готовыми решениями:

Найти сумму элементов матрицы, расположенных выше главной диагонали и ниже побочной диагонали
Дана целочисленная квадратная матрица размера n  m (n, m вводятся). Значения элементов матрицы...

Найти сумму элементов матрицы, расположенных выше главной диагонали и ниже побочной диагонали
В строчке int **matrix = malloc(sizeof(int*) * rows); выделяет функцию malloc, а в строчке matrix...

Вычислить среднее арифметическое элементов матрицы, расположенных на главной диагонали
Вычислить среднее арифметическое элементов матрицы, расположенных на главной диагонали. Вывести...

Определить сумму элементов матрицы, расположенных выше главной диагонали
Определить сумму элементов матрицы размером 10 на 10, расположенных выше главной диагонали Срочно...

Сформировать вектор из элементов, расположенных выше главной диагонали матрицы
1 Дана матрица А(5,5). Сформировать вектор из элементов, расположенных выше главной диагонали.

6
dr_IIuHrBuHOFF
2 / 2 / 1
Регистрация: 22.08.2013
Сообщений: 10
11.11.2013, 21:37 2
В чём сложности?
Свой код есть?
0
glesio
0 / 0 / 0
Регистрация: 16.02.2013
Сообщений: 80
12.11.2013, 21:54  [ТС] 3
Цитата Сообщение от dr_IIuHrBuHOFF Посмотреть сообщение
В чём сложности?
Свой код есть?
Преподаватель разрешил доделать дома.
Часть кода есть и мне его уже немного "причесали". Нужно вычислить произведение элементов расположенных на главной диагонали матрицы.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
 
int main()
{
    const int size = 6;
    int Matrix[size][size];
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            Matrix[i][j] = rand()%10;
            printf("%d ", Matrix[i][j]);
        }
        printf("\n");
    }
 
    void* p = malloc(sizeof(int)* size);
    int* diag = (int*)p;
 
    for(int i = 0; i < size; ++i)
    {
        diag[i] = Matrix[i][i];
    }
 
    free(p);
    system("pause"); 
    return 0;
}
Добавлено через 41 минуту
Нашел вроде как кусок кода для моей задачки, но пока не смог удачно скрестить .
0
AlinkoMalinko
3 / 3 / 2
Регистрация: 12.11.2013
Сообщений: 42
12.11.2013, 22:46 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

ну наверное как то так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#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;
}
Добавлено через 48 секунд
PS: больше не извращайтесь так с бедным маллоком=)

Добавлено через 1 минуту
Код потерпел некоторые изменения так как компилирую в режиме онлайн (
C
1
system("pause");
) пришлось принести в жертву
1
dr_IIuHrBuHOFF
2 / 2 / 1
Регистрация: 22.08.2013
Сообщений: 10
12.11.2013, 22:55 5
Цитата Сообщение от glesio Посмотреть сообщение
Нужно вычислить произведение элементов расположенных на главной диагонали матрицы.
Ты в у себя её нашел ведь, диагональ то :
Цитата Сообщение от glesio Посмотреть сообщение
for(int i = 0; i < size; ++i)
* * {
* * * * diag[i] = Matrix[i][i];
* * }
Думается что произведение элементов найти можно добавив что-то типа:
C++
1
int result=1;for(int i = 0; i < size; ++i)result*=diag[i];
Тебе это надо?
1
glesio
0 / 0 / 0
Регистрация: 16.02.2013
Сообщений: 80
12.11.2013, 23:38  [ТС] 6
УРа ! Заработало. Всем участникам большое спасибо.
0
vua72
418 / 417 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
16.11.2013, 03:25 7
C
1
2
void* p = malloc(sizeof(int)* size);
    int* diag = (int*)p;
может сразу
C
1
int* diag = (int*)malloc(sizeof(int)* size);
0
16.11.2013, 03:25
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2013, 03:25

Найти максимальный из элементов матрицы, расположенных выше главной диагонали
дана целочисленная квадратная матрица. Определить: 1) 2) найти максимальный из элементов,...

Найти произведение положительных элементов, расположенных ниже главной диагонали матрицы
Проблема в том, что если нет положительных элементов, то выводит присвоенную единицу. Как...

Вычислить произведение положительных элементов матрицы, расположенных ниже главной диагонали
Вычислить произведение положительных элементов матрицы, расположенных ниже главной диагонали....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.