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

Умножить каждый элемент столбца матрицы A(n, m) на первый элемент данного столбца. - C++

Восстановить пароль Регистрация
 
Татьяна)
0 / 0 / 0
Регистрация: 25.04.2010
Сообщений: 4
26.04.2010, 01:25     Умножить каждый элемент столбца матрицы A(n, m) на первый элемент данного столбца. #1
Помогите, пожалуйста, написать программу:
Умножить каждый элемент столбца матрицы A(n, m) на первый элемент данного столбца. Она кажется не сложной, однако, я не очень хорошо в этом разбираюсь

Оригинал
Допоможіть, будь-ласка, скласти програму:
Помножити кожний елемент стовпця матриці А(n,m) на перший елемент даного стовця. Вона здаеться не тяжкою, однак, я не дуже розуміюся на цьому.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2010, 01:25     Умножить каждый элемент столбца матрицы A(n, m) на первый элемент данного столбца.
Посмотрите здесь:

Сформировать B, элементы которого Bj равны 1, если хотя бы один элемент j-го столбца матрицы A больше суммы элементов этого столбца... C++
Дано матрицу А размером 8x7. Разделить каждый элемент столбца на элемент этого столбца... C++
Каждый элемент матрицы умножить на максимальный элемент у поточному рядку. Вывести на экран начальную та полученную матрицы C++
C++ Разделить элементы каждого столбца заданной матрицы на последний элемент столбца
C++ Создать новый массив, найти наименьший элемент 3-го столбца, поменять местами наименьший элемент 3-го столбца и элемент a23
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
26.04.2010, 01:43     Умножить каждый элемент столбца матрицы A(n, m) на первый элемент данного столбца. #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
#include <iostream>
int main()
{
    int **matr;
    int i, j, n, m;
    std::cin>>n;
    std::cin>>m;
    matr = new int*[n];
    for(i = 0; i < n; ++i)
        matr[i] = new int[m];
    
    for(i = 0; i < n; ++i)
        for(j = 0; j < m; ++j)
            std::cin>>matr[i][j];
 
    for(i = 0; i < n; ++i)
        for(j = 0; j < m; ++j)
            matr[i][j] *= matr[0][j];
    
    for(i = 0; i < n; ++i, std::cout<<std::endl)
        for(j = 0; j < m; ++j)
            std::cout<<matr[i][j]<<' ';
 
    return 0;
}
Татьяна)
0 / 0 / 0
Регистрация: 25.04.2010
Сообщений: 4
26.04.2010, 02:00  [ТС]     Умножить каждый элемент столбца матрицы A(n, m) на первый элемент данного столбца. #3
спасибо, конечно) но, мне не все здесь понятно... а как-то проще его можно сделать?
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
26.04.2010, 02:02     Умножить каждый элемент столбца матрицы A(n, m) на первый элемент данного столбца. #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
33
#include <iostream>
int main()
{
//объявление переменных
    int **matr;
    int i, j, n, m;
 
//ввод размеров матрицы
    std::cin>>n;
    std::cin>>m;
 
//выделение памяти под матрицу
    matr = new int*[n];
    for(i = 0; i < n; ++i)
        matr[i] = new int[m];
    
//ввод матрицы
    for(i = 0; i < n; ++i)
        for(j = 0; j < m; ++j)
            std::cin>>matr[i][j];
 
//выполнение умножения
    for(i = 0; i < n; ++i)
        for(j = 0; j < m; ++j)
            matr[i][j] *= matr[0][j];
    
//вывод результата
    for(i = 0; i < n; ++i, std::cout<<std::endl)
        for(j = 0; j < m; ++j)
            std::cout<<matr[i][j]<<' ';
 
    return 0;
}
Что из этого можно выбросить?
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
26.04.2010, 09:52     Умножить каждый элемент столбца матрицы A(n, m) на первый элемент данного столбца. #5
M128K145, у вас программка умножает сначала первый элемент столбца на себя, а потом все остальные элементы на этот, перемноженный сам на себя, элемент (уж простите за каламбур ).
Вот слегка измененная ваша программка:
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
#include <iostream>
#include <time.h>
int main()
{
    srand (time(NULL));
//объявление переменных
    int **matr;
    int i, j, n, m;
 
//ввод размеров матрицы
    std::cin>>n;
    std::cin>>m;
 
//выделение памяти под матрицу
    matr = new int*[n];
    for(i = 0; i < n; ++i)
        matr[i] = new int[m];
    
//ввод матрицы
    std::cout<<"Matrica: "<<std::endl;
    for(i = 0; i < n; ++i)
    {
        for(j = 0; j < m; ++j)
        {
            matr[i][j]=1+rand()%10;
            std::cout<<matr[i][j]<<"\t";
        }
        std::cout<<std::endl;
    }
 
//выполнение умножения
    int k=0;
    for(i = 0; i < m; ++i) //столбец
    {
        int p=matr[0][k++];
        for(j = 0; j < n; ++j) //строка
            matr[j][i] *= p;
    }
    
//вывод результата
    std::cout<<"\nRez: "<<std::endl;
    for(i = 0; i < n; ++i, std::cout<<std::endl)
        for(j = 0; j < m; ++j)
            std::cout<<matr[i][j]<<'\t';
 
    return 0;
}
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
26.04.2010, 19:37     Умножить каждый элемент столбца матрицы A(n, m) на первый элемент данного столбца. #6
NNN777, действительно ошибся, только я бы все равно не переписал бы как вы. Во-первых объявлять переменные в цикле не хорошо, а во-вторых нам не нужны временные переменные .
Вот так думаю получше будет
C++
1
2
3
for(i = n - 1; i >= 0; --i)
    for(j = 0; j < m; ++j)
        matr[i][j] *= matr[0][j];
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2010, 21:06     Умножить каждый элемент столбца матрицы A(n, m) на первый элемент данного столбца.
Еще ссылки по теме:

C++ Поделить каждый элемент матрицы на элемент из этого же столбца, находящийся на главной диагонали
C++ Для каждого столбца матрицы найти первый положительный элемент
C++ Сформировать массив, каждый элемент которого равен суме элементов соответствующего столбца матрицы

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

Или воспользуйтесь поиском по форуму:
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
26.04.2010, 21:06     Умножить каждый элемент столбца матрицы A(n, m) на первый элемент данного столбца. #7
Да, действительно, так круче получилось , ну и правильней, конечно
Yandex
Объявления
26.04.2010, 21:06     Умножить каждый элемент столбца матрицы A(n, m) на первый элемент данного столбца.
Ответ Создать тему
Опции темы

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