Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Karahtan
0 / 0 / 0
Регистрация: 26.10.2011
Сообщений: 20
#1

Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный "след" - C++

26.10.2011, 19:47. Просмотров 924. Ответов 4
Метки нет (Все метки)

Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный "след" (т.е. сумму элементов главной диагонали). Использовать функцию для нахождения следа матрицы и функцию печати матрицы.

Помогите пожалуйста. Буду очень благодарна.
(язык СИ ( обычный))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2011, 19:47     Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный "след"
Посмотрите здесь:

Напечатать ту матрицу из двух, которая имеет минимальный след - C++
Даны две квадратные матрицы. Напечатать ту из них, ко¬торая имеет минимальный "след" (т.е. сумму элементов главной диагонали). Использовать...

Даны две строки. Если они начинаются с одинаковых символов, то напечатать "ДА", иначе - "НЕТ" - C++
Даны две строки. Если они начинаются с одинаковых символов, то напечатать "ДА", иначе - "НЕТ". (5)

Даны три слова - "мама", "мыла", "раму". Задача - напечатать всевозможные варианты построения слов - C++
Я записал код, однако эту часть надо автоматизировать, поможете? КОД: } #include <iostream> using namespace std; int main()...

Даны две действительные квадратные матрицы порядка n - C++
Даны две действительные квадратные матрицы порядка n. Получить новую матрицу путем прибавления к элементам каждого столбца первой матрицы...

Даны две квадратные матрицы.Вычислить третью по формуле - C++
Даны две квадратные матрицы А размером и В размером NxK MxK. Вычислить матрицу С по формуле: C=2AB-B^2. Есть наброски, но это для меня не...

Даны две действительные квадратные матрицы порядка n. Получить новую матрицу: а) умножением элементов каждой строки первой матрицы на наибольш - C++
Даны две действительные квадратные матрицы порядка n. Получить новую матрицу: а) умножением элементов каждой строки первой матрицы ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петррр
5946 / 3383 / 336
Регистрация: 28.10.2010
Сообщений: 5,927
26.10.2011, 20:27     Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный "след" #2
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
void fill(int **array, int n)
{
    int i, j;
    for(i = 0; i < n; i++)
        for(j = 0; j < n; j++)
            array[i][j] = rand() % 20;
}
 
void show(int **array, int n)
{
    int i, j;
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
            printf("%4d", array[i][j]);
        printf("\n");
    }
}
 
int sum_of_diag(const int **array, int n)
{
    int sum = 0, i;
    for(i = 0; i < n; sum += array[i][i], i++);
    return sum;
}
 
int main(int argc, char **argv)
{
    const int n = 4;
    int **a, **b;
    int i;
    int sum_a, sum_b;
    a = (int**) malloc(sizeof(int*) * n);
    b = (int**) malloc(sizeof(int*) * n);
    srand(time(NULL));
    for(i = 0; i < n; i++)
    {
        a[i] = (int*) malloc(sizeof(int) * n);
        b[i] = (int*) malloc(sizeof(int) * n);
    }
    fill(a, n);
    fill(b, n);
    printf("Array a: \n");
    show(a, n);
    printf("Array b: \n");
    show(b, n);
    
    printf("Sum of a diag: %d\n", sum_a = sum_of_diag(a, n));
    printf("Sum of b diag: %d\n", sum_b = sum_of_diag(b, n));
    if (sum_a < sum_b)
    {
        printf("A:\n");
        show(a, n);
    }
    else
    {
        printf("B:\n");
        show(b, n);
    }
    for(i = 0; i < n; i++)
    {
        free(a[i]);
        free(b[i]);
    }
    free(a);
    free(b);
    system("pause");
    return 0;
}
Сыроежка
Заблокирован
26.10.2011, 20:39     Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный "след" #3
Цитата Сообщение от Петррр Посмотреть сообщение
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
void fill(int **array, int n)
{
    int i, j;
    for(i = 0; i < n; i++)
        for(j = 0; j < n; j++)
            array[i][j] = rand() % 20;
}
 
void show(int **array, int n)
{
    int i, j;
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
            printf("%4d", array[i][j]);
        printf("\n");
    }
}
 
int sum_of_diag(const int **array, int n)
{
    int sum = 0, i;
    for(i = 0; i < n; sum += array[i][i], i++);
    return sum;
}
 
int main(int argc, char **argv)
{
    const int n = 4;
    int **a, **b;
    int i;
    int sum_a, sum_b;
    a = (int**) malloc(sizeof(int*) * n);
    b = (int**) malloc(sizeof(int*) * n);
    srand(time(NULL));
    for(i = 0; i < n; i++)
    {
        a[i] = (int*) malloc(sizeof(int) * n);
        b[i] = (int*) malloc(sizeof(int) * n);
    }
    fill(a, n);
    fill(b, n);
    printf("Array a: \n");
    show(a, n);
    printf("Array b: \n");
    show(b, n);
    
    printf("Sum of a diag: %d\n", sum_a = sum_of_diag(a, n));
    printf("Sum of b diag: %d\n", sum_b = sum_of_diag(b, n));
    if (sum_a < sum_b)
    {
        printf("A:\n");
        show(a, n);
    }
    else
    {
        printf("B:\n");
        show(b, n);
    }
    for(i = 0; i < n; i++)
    {
        free(a[i]);
        free(b[i]);
    }
    free(a);
    free(b);
    system("pause");
    return 0;
}
Насколько мне известно из математики, матрицы не обязательно бывают квадратные!
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.10.2011, 20:39     Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный "след" #4
Цитата Сообщение от Сыроежка Посмотреть сообщение
Насколько мне известно из математики, матрицы не обязательно бывают квадратные!
След определен только для квадратных матриц, вообще он явл.оператором на множестве квадратных матриц
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2011, 20:42     Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный "след"
Еще ссылки по теме:

1)Даны две действительные квадратные матрицы порядка n. Получить новую матрицу : А) умножение элементов каждой строки первой матрицы на наибольшее из - C++
1)Даны две действительные квадратные матрицы порядка n. Получить новую матрицу : А) умножение элементов каждой строки первой матрицы на...

Даны две квадратные матрицы размером n×n. Проверить, совпадают ли они - C++
Доброго времени суток товарищи! Задача: Даны две квадратные матрицы размером n×n. Проверить, совпадают ли они. Напечатал говнокод,...

Даны две действительные квадратные матрицы порядка n. Получить новую матрицу: путем умножения элементов каждой строки первой матрицы на наибольшее из - C++
Даны две действительные квадратные матрицы порядка n. Получить новую матрицу: путем умножения элементов каждой строки первой матрицы на...


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

Или воспользуйтесь поиском по форуму:
Сыроежка
Заблокирован
26.10.2011, 20:42     Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный "след" #5
Цитата Сообщение от Thinker Посмотреть сообщение
След определен только для квадратных матриц, вообще он явл.оператором
Действительно, у не квадратной матрицы, фактически, нет главной диагонали,или она какая-то вырожденная.
Yandex
Объявления
26.10.2011, 20:42     Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный "след"
Ответ Создать тему
Опции темы

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