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

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

Войти
Регистрация
Восстановить пароль
 
Татьяна)
0 / 0 / 0
Регистрация: 25.04.2010
Сообщений: 4
#1

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

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

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

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

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

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

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

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

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

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

6
M128K145
Эксперт С++
8300 / 3520 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
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
M128K145
Эксперт С++
8300 / 3520 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
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
NNN777
299 / 157 / 19
Регистрация: 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
M128K145
Эксперт С++
8300 / 3520 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
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
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
26.04.2010, 21:06 #7
Да, действительно, так круче получилось , ну и правильней, конечно
0
26.04.2010, 21:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2010, 21:06
Привет! Вот еще темы с ответами:

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

Задана матрица A(n,n). Первый элемент каждого четного столбца заменить суммой простых чисел этого столбца, пер - C++
Надо решить такую задачу,помогите,а то не шарю що делать: Задана матрица A(n,n). Первый элемент каждого четного столбца заменить суммой...

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

Создать новый массив, найти наименьший элемент 3-го столбца, поменять местами наименьший элемент 3-го столбца и элемент a23 - C++
1 Создать новый одномерный массив , каждый элемент которого равен среднему арифметическому элементов соответствующей строки данной матрицы....


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

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

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