0 / 0 / 0
Регистрация: 25.04.2010
Сообщений: 4
1

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

26.04.2010, 01:25. Показов 2705. Ответов 6
Метки нет (Все метки)

Помогите, пожалуйста, написать программу:
Умножить каждый элемент столбца матрицы A(n, m) на первый элемент данного столбца. Она кажется не сложной, однако, я не очень хорошо в этом разбираюсь

Оригинал
Допоможіть, будь-ласка, скласти програму:
Помножити кожний елемент стовпця матриці А(n,m) на перший елемент даного стовця. Вона здаеться не тяжкою, однак, я не дуже розуміюся на цьому.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2010, 01:25
Ответы с готовыми решениями:

Каждый элемент столбца матрицы разделить на среднее арифметическое элементов данного столбца
Заданный массив действительных чисел А (n, n). Необходимо каждый элемент столбца разделить на...

Не получается умножить каждый элемент столбца на минимальный элемент этого столбца
Преобразовать двумерный массив 4х6, умножив элементы каждого столбца на минимальный элемент этого...

Найти столбец содержащий минимальный элемент. Умножить элементы данного столбца на максимальный элемент
30. В матрице А(8,8) найти столбец содержащий минимальный элемент. Умножить элементы данного ...

Выбрать строку матрицы с наибольшей суммой элементов и каждый отрицательный элемент умножить на номер столбца
Задана матрица Z(5,6). Выбрать строку с наибольшей суммой элементов и вывести элементы этой строки...

6
Эксперт JavaЭксперт С++
8378 / 3600 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
26.04.2010, 01:43 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;
}
1
0 / 0 / 0
Регистрация: 25.04.2010
Сообщений: 4
26.04.2010, 02:00  [ТС] 3
спасибо, конечно) но, мне не все здесь понятно... а как-то проще его можно сделать?
0
Эксперт JavaЭксперт С++
8378 / 3600 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
26.04.2010, 02:02 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;
}
Что из этого можно выбросить?
1
302 / 160 / 62
Регистрация: 27.02.2010
Сообщений: 317
26.04.2010, 09:52 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;
}
2
Эксперт JavaЭксперт С++
8378 / 3600 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
26.04.2010, 19:37 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];
2
302 / 160 / 62
Регистрация: 27.02.2010
Сообщений: 317
26.04.2010, 21:06 7
Да, действительно, так круче получилось , ну и правильней, конечно
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2010, 21:06
Помогаю со студенческими работами здесь

Дано матрицу А размером 8x7. Разделить каждый элемент столбца на элемент этого столбца...
Дано матрицу А размером 8x7. разделить каждый элемент столбца на элемент этого столбца, который...

Поделить каждый элемент матрицы на элемент из этого же столбца, находящийся на главной диагонали
Дана матрица А размером 8х7, поделить каждый элемент столбца на элемент этого столбца, который...

Каждый элемент матрицы умножить на максимальный элемент у поточному рядку. Вывести на экран начальную та полученную матрицы
Здравствуйте! Дано задание: Каждый элемент матрицы умножить на максимальный элемент у поточному...

Возвести в куб каждый элемент четного столбца матрицы
Нужно возвести в куб каждый элемент четного столбца матрицы 10х10.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru