Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 1
Регистрация: 26.10.2011
Сообщений: 20
1

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

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

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

Помогите пожалуйста. Буду очень благодарна.
(язык СИ ( обычный))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2011, 19:47
Ответы с готовыми решениями:

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

Напечатать ту из матриц, которая имеет минимальный "след"
Прошу оказать содействие: Задача: Даны две квадратные матрицы nxn. Напечатать ту из них, которая...

Напечатать матрицу которая имеет минимальный "след”
Добрый день: Есть задача: Даны две квадратные матрицы nxn. Напечатать ту из них, которая имеет...

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

4
6239 / 3540 / 898
Регистрация: 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
Эксперт С++
4258 / 2232 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.10.2011, 20:39 4
Цитата Сообщение от Сыроежка Посмотреть сообщение
Насколько мне известно из математики, матрицы не обязательно бывают квадратные!
След определен только для квадратных матриц, вообще он явл.оператором на множестве квадратных матриц
0
Заблокирован
26.10.2011, 20:42 5
Цитата Сообщение от Thinker Посмотреть сообщение
След определен только для квадратных матриц, вообще он явл.оператором
Действительно, у не квадратной матрицы, фактически, нет главной диагонали,или она какая-то вырожденная.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2011, 20:42

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный след
Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный &quot;след' (т.е. сумму...

Даны две квадратные матрицы.Напечатать квадрат той из них,в который наименьший след.
Заранее спасибо!!!

Даны две квадратные вещественные матрицы 10 порядка. Напечатать квадрат той из них, в которой наименьший след
Даны две квадратные вещественные матрицы 10 порядка. Напечатать квадрат той из них, в которой...

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


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

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

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