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

Получить новую матрицу - C++

Восстановить пароль Регистрация
 
ExtoZy
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 19
18.11.2012, 22:16     Получить новую матрицу #1
Здравствуйте, нужен код для задачки на языке C: Даны две действительные квадратные матрицы порядка n. Получить новую матрицу умножением элементов каждой строки первой матрицы на наибольшее из значений элементов соответствующей строки второй матрицы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
19.11.2012, 00:25     Получить новую матрицу #2
Если матрицы a[][] и b[][] (первая и вторая) размером n*n уже есть и заполнены значениями, и матрица c[][] (новая) размером n*n тоже уже есть, то заполнить ее значениями можно так:
C++
1
2
3
4
5
6
7
8
9
for(int i=0; i<n; i++)
{
    int j_max=0, j;
    for(j=1; j<n; j++)
        if(b[i][j]>b[i][j_max])
            j_max=j;
    for(j=0; j<n; j++)
        c[i][j]=a[i][j]*b[i][j_max];
}
ExtoZy
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 19
19.11.2012, 22:53  [ТС]     Получить новую матрицу #3
Вообщем, вот код, не могу теперь понять, куда писать вывод матриц a и b, нужно, чтобы после ввода пользователем элементов этих матриц, выводились на экран эти матрицы, а потом уже третья матрица
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
#include "stdafx.h"
#define nmax 100
#include "stdlib.h"
#include "stdio.h"
#include "iostream"
using namespace std;
int _tmain()
{
    int n,i,j;
    float a[nmax][nmax],b[nmax][nmax],c[nmax][nmax],j_max;
    do
    {
    printf ("Vvedite plizzzzz n= ");
    scanf_s ("%d",&n);
    if (n<0||n>nmax)
        printf("Oshibka");
    }
    while (n<0||n>nmax);
    for( i=0; i<n; i++)
    {
    for (j=0; j<n; j++ )
    {
        printf ("Vvedite a[%d][%d]",i,j);
        scanf_s ("%f",&a[i][j]); // printf(%f , a[i][j])
    }
 
    }
    for( i=0; i<n; i++)
    {
        for (j=0; j<n; j++ )
        {
            printf ("Vvedite b[%d][%d]",i,j);
            scanf_s ("%f",&b[i][j]);
        }
    }
 
        for( i=0; i<n; i++)
        {
            j_max=b[i][0];
            for (j=0; j<n; j++)
            {
                if (b[i][j]>j_max)
                    j_max=b[i][j];
            }
 
 
            for (j=0; j<n; j++)
            {
                c[i][j]=a[i][j]*j_max;
                printf ("c[%d][%d]= %.0f ",i,j,c[i][j]);
                printf("%.0f" , c[i][j]);
        //printf("\n");
            }
            printf("\n");
        
        }
        system("pause");
        getchar();
 
        return 1;
}
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.11.2012, 06:06     Получить новую матрицу #4
Цитата Сообщение от ExtoZy Посмотреть сообщение
куда писать вывод матриц a и b, нужно, чтобы после ввода пользователем элементов этих матриц, выводились на экран эти матрицы, а потом уже третья матрица
можно например после формирования матрицы c[][] (новой матрицы):
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
74
75
76
77
78
79
80
81
82
#include "stdafx.h"
#define nmax 100
#include "stdlib.h"
#include "stdio.h"
#include "iostream"
using namespace std;
int _tmain()
{
    int n,i,j;
    float a[nmax][nmax],b[nmax][nmax],c[nmax][nmax],j_max;
    do
    {
    printf ("Vvedite plizzzzz n= ");
    scanf_s ("%d",&n);
    if (n<0||n>nmax)
        printf("Oshibka");
    }
    while (n<0||n>nmax);
    for( i=0; i<n; i++)
    {
    for (j=0; j<n; j++ )
    {
        printf ("Vvedite a[%d][%d]",i,j);
        scanf_s ("%f",&a[i][j]); // printf(%f , a[i][j])
    }
 
    }
    for( i=0; i<n; i++)
    {
        for (j=0; j<n; j++ )
        {
            printf ("Vvedite b[%d][%d]",i,j);
            scanf_s ("%f",&b[i][j]);
        }
    }
 
        for( i=0; i<n; i++)
        {
            j_max=b[i][0];
            for (j=0; j<n; j++)
            {
                if (b[i][j]>j_max)
                    j_max=b[i][j];
            }
 
 
            for (j=0; j<n; j++)
            {
                c[i][j]=a[i][j]*j_max;
                printf ("c[%d][%d]= %.0f ",i,j,c[i][j]);
                printf("%.0f" , c[i][j]);
        //printf("\n");
            }
            printf("\n");
        
        }
        printf("Matr a\n");
        for( i=0; i<n; i++)
        {
            for (j=0; j<n; j++ )
                printf("%f ",a[i][j]);
            printf("\n");       
        }
        printf("Matr b\n");
        for( i=0; i<n; i++)
        {
            for (j=0; j<n; j++ )
                printf("%f ",b[i][j]);
            printf("\n");       
        }
        printf("Matr c\n");
        for( i=0; i<n; i++)
        {
            for (j=0; j<n; j++ )
                printf("%f ",c[i][j]);
            printf("\n");       
        }
        system("pause");
        getchar();
 
        return 1;
}
ExtoZy
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 19
21.11.2012, 16:04  [ТС]     Получить новую матрицу #5
Цитата Сообщение от valeriikozlov Посмотреть сообщение
можно например после формирования матрицы c[][] (новой матрицы):
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
74
75
76
77
78
79
80
81
82
#include "stdafx.h"
#define nmax 100
#include "stdlib.h"
#include "stdio.h"
#include "iostream"
using namespace std;
int _tmain()
{
    int n,i,j;
    float a[nmax][nmax],b[nmax][nmax],c[nmax][nmax],j_max;
    do
    {
    printf ("Vvedite plizzzzz n= ");
    scanf_s ("%d",&n);
    if (n<0||n>nmax)
        printf("Oshibka");
    }
    while (n<0||n>nmax);
    for( i=0; i<n; i++)
    {
    for (j=0; j<n; j++ )
    {
        printf ("Vvedite a[%d][%d]",i,j);
        scanf_s ("%f",&a[i][j]); // printf(%f , a[i][j])
    }
 
    }
    for( i=0; i<n; i++)
    {
        for (j=0; j<n; j++ )
        {
            printf ("Vvedite b[%d][%d]",i,j);
            scanf_s ("%f",&b[i][j]);
        }
    }
 
        for( i=0; i<n; i++)
        {
            j_max=b[i][0];
            for (j=0; j<n; j++)
            {
                if (b[i][j]>j_max)
                    j_max=b[i][j];
            }
 
 
            for (j=0; j<n; j++)
            {
                c[i][j]=a[i][j]*j_max;
                printf ("c[%d][%d]= %.0f ",i,j,c[i][j]);
                printf("%.0f" , c[i][j]);
        //printf("\n");
            }
            printf("\n");
        
        }
        printf("Matr a\n");
        for( i=0; i<n; i++)
        {
            for (j=0; j<n; j++ )
                printf("%f ",a[i][j]);
            printf("\n");       
        }
        printf("Matr b\n");
        for( i=0; i<n; i++)
        {
            for (j=0; j<n; j++ )
                printf("%f ",b[i][j]);
            printf("\n");       
        }
        printf("Matr c\n");
        for( i=0; i<n; i++)
        {
            for (j=0; j<n; j++ )
                printf("%f ",c[i][j]);
            printf("\n");       
        }
        system("pause");
        getchar();
 
        return 1;
}
Спасибо, чуть изменил для красоты, все работает как надо)
Yandex
Объявления
21.11.2012, 16:04     Получить новую матрицу
Ответ Создать тему
Опции темы

Текущее время: 23:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru