Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

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

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

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

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

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

4
Петррр
5970 / 3407 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
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;
}
1
Сыроежка
Заблокирован
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;
}
Насколько мне известно из математики, матрицы не обязательно бывают квадратные!
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.10.2011, 20:39 #4
Цитата Сообщение от Сыроежка Посмотреть сообщение
Насколько мне известно из математики, матрицы не обязательно бывают квадратные!
След определен только для квадратных матриц, вообще он явл.оператором на множестве квадратных матриц
0
Сыроежка
Заблокирован
26.10.2011, 20:42 #5
Цитата Сообщение от Thinker Посмотреть сообщение
След определен только для квадратных матриц, вообще он явл.оператором
Действительно, у не квадратной матрицы, фактически, нет главной диагонали,или она какая-то вырожденная.
0
26.10.2011, 20:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2011, 20:42
Привет! Вот еще темы с ответами:

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

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

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

Даны три квадратные матрицы А, В, С n-го порядка. Вывести на печать ту из них, норма которой наименьшая - C++
Даны три квадратные матрицы А, В, С n-го порядка. Вывести на печать ту из них, норма которой наименьшая. Нормой матрицы назовем максимум из...


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

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

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