Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 25

Матрицы. Умножить элементы строки на значение соответствующего диагонального элемента

30.05.2015, 08:59. Показов 4405. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Матрицы
Дана таблица А размера MxN. Умножить каждый элемент нулевой строки на А[0][0] (в том числе и элемент A[0][0]), каждый элемент первой строки на А[1][1] и т.д.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2015, 08:59
Ответы с готовыми решениями:

Умножить элементы последней строки матрицы на значение минимального элемента
Составить программу, в которой 1) организовать ввод матрицы размера mxn из произвольных чисел; 2) умножить элементы последней строки на...

Умножить элементы матрицы на значение элемента боковой диагонали соответствующей строки
Умножить каждый элемент строки квадратной матрицы на значение элемента боковой диагонали соответствующей строки. Вернуть количество строк...

Умножить элементы всех столбцов матрицы на номер соответствующего столбца
Не могу понять где допустил ошибку в задании "2. Матрица A состоит из 6 строк и 5 столбцов. Умножить элементы всех столбцов на номер...

21
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
30.05.2015, 20:45
Не ошиблись в задании? Проверьте, вдруг дана квадратная матрица NxN? Или есть дополнительные условия, вроде N>M?
C++
1
2
3
4
5
6
7
    int a[M][N], m;
    for (int i=0;i<M;i++){
        m = a[i][i];
        for (int j=0;j<N;j++){
            a[i][j] *= m;
        }
    }
0
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 25
31.05.2015, 14:02  [ТС]
К сожалению, формулировка задания именно такая

Добавлено через 2 минуты
Вот всё то, что у меня получилось:
Но больно уж как то не так работает программа
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <iostream>
#include <time.h>
#define M 10
#define N 20
int main()
{
int a[M][N];
int n;
int m;
for (n = 0; n < N; n++)
{
for (m = 0; m < M; m++)
{
a[m][n] = a[m][0] * a[m][n];
std::cout <<a[m][n]<< "" << std::endl;
}
}
 
system("pause");
return 0;
}
0
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
31.05.2015, 14:05
Цитата Сообщение от igorbogdanov Посмотреть сообщение
К сожалению,
что сожалеть то ,просто сделайте то что указано в задание ,тут ничего сверхсложного нет
0
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 25
31.05.2015, 14:08  [ТС]
попытался сделать, код выше привёл, как то не так работает программа, не могу понять в чём причина
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
31.05.2015, 14:09
C++
1
2
3
4
5
6
7
8
9
for (m = 0; m < N; m++)
{
   for (n = 0; n < M; n++)
   {
      a[m][n] = a[m][0] * a[m][n];
      std::cout <<a[m][n]<< "";
   }
   std::cout << std::endl;
}
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
31.05.2015, 14:20
Цитата Сообщение от Даценд Посмотреть сообщение
a[m][n] = a[m][0] * a[m][n];
Я может ошибаюсь, но при первой итерации произойдет следующее:
Code
1
a[0][0] = a[0][0] * a[0][0];
А потом:
Code
1
a[0][1] = a[0][0] * a[0][1];
НО! Значение в a[0][0] УЖЕ умножено. Следовательно будет считаться неправильно
0
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 25
31.05.2015, 14:22  [ТС]
Программа выдает такой результат и сразу закрывается, пауза прописана
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
31.05.2015, 14:24
Повторяю:
C++
1
2
3
4
5
6
7
8
9
int m;
for (int i=0;i<M;i++){
  m = a[i][i];
  for (int j=0;j<N;j++){
    a[i][j] *= m;
    std::cout <<a[i][j]<< " ";
  }
  std::cout << std::endl;
}
Добавлено через 1 минуту
Цитата Сообщение от igorbogdanov Посмотреть сообщение
Программа выдает такой результат и сразу закрывается,
Попробуйте так:
C++
1
2
#define M 20
#define N 10
1
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 25
31.05.2015, 14:28  [ТС]
Даценд, по вашему коду какой-то странный результат получается)
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
31.05.2015, 14:28
Рыжий Лис,
так в задании и нужно каждый элемент сороки умножать на первый ее элемент

Уже вижу, что задание прочитал невнимательно. Нужно так
C++
1
2
3
4
5
6
7
8
9
for (m = 0; m < N; m++) //строки. Правда обычно число строк M обозначают
{
  for (n = 0; n < M; n++) //столбцы
  {
      a[m][n] = a[m][m] * a[m][n]; //каждый элемент строки m умножаем на элемент a[m][m]
      std::cout <<a[m][n]<< "";
   }
   std::cout << std::endl;
}
0
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 25
31.05.2015, 14:33  [ТС]
Рыжий Лис, ох тыж, это что-то странное получилось, консоль просто заполнена странными числами
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
31.05.2015, 14:35
igorbogdanov,
поменяйте в моем последнем варианте (сообщение #11) M и N местами
0
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 25
31.05.2015, 14:42  [ТС]
Даценд, к сожалению, в консоли сумасброд

Добавлено через 2 минуты
Даценд, 1619350660174759717601048844-1924412292-19244122920000
-188073032-357528444-8762048085829383361336934403239898965875 6430413369344032398
9896-715056888
0000000000
-460815312-4608453520641515750401515750401514956801 46748672-262136064146785792
-2017048992-1787398600-2089877915-1441764202-107441191-1339997092130061412-20897
955041782066536-1613166072
-125596467211027087361402863616-1556086784110270873610737418240000
73397504-1476395008-495440896172027716000-403694016001524901952
180355072315428032-1599692800369167427538251124242353977448 0735882423539770-6324
94304
7207536000-534123328-1483904512-566703680856044928-1418743808-1549065216-1207959
552
9382656000964204209616848870816487728961 44
8145168812884824268128816128256812884881 289924744720
8145088529430724072544260642816488705285 2943072651607044072544-19724234240
-71171091214761740801815270752-77045416-1311090752-73166874401902705600485336000
-178251328
8128848812899211803747044719344153602061 21128627201180375024
8145120-7377283841042575360814512028507920260643 840305659904-1483904512190446540
865160960
-1151435264202059494400-11514352642003456-11504335361160001024212477465619755171
84
0000000000
12962273282063594496-22937282056713312-1407081408-1300234240-13956127680-3351201
60
-487252296-5869716521853587480-2088810195619239114708006088-4693876241858217376-
586971652-1033216944
1-2009187043-2009249812-4072552-4072496-8-2009247405-41876516-2088810195-2293672

Для продолжения нажмите любую клавишу . . .
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
31.05.2015, 14:49
Цитата Сообщение от igorbogdanov Посмотреть сообщение
, в консоли сумасброд
а как вводятся исходные данные, т.е. значения элементов массива?
0
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 25
31.05.2015, 14:55  [ТС]
Даценд, Вот собственно код целиком
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <iostream>
#include <time.h>
#define M 10
#define N 20
int main()
{
int a[M][N];
int n;
int m;
for (m = 0; m < M; m++) //строки. Правда обычно число строк M обозначают
{
  for (n = 0; n < N; n++) //столбцы
  {
      a[m][n] = a[m][m] * a[m][n]; //каждый элемент строки m умножаем на элемент a[m][m]
      std::cout <<a[m][n]<< "";
   }
   std::cout << std::endl;
}
system("pause");
return 0;
}
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
31.05.2015, 15:04
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
#include <stdio.h>
#include <iostream>
#include <time.h>
#define M 10
#define N 20
int main()
{
int a[M][N];
int n;
int m;
for (m = 0; m < M; m++) //строки. 
{
  for (n = 0; n < N; n++) //столбцы
  {
      std::cout << "Введите элемент a[" << m << "][" << n << "]: " ;
      std::cin >> a[m][n];
   }
}
 std::cout << "Исходная матрица: " << endl; 
for (m = 0; m < M; m++) //строки. 
{
  for (n = 0; n < N; n++) //столбцы
  {
      std::cout << a[m][n]<< "";
   }
   std::cout << std::endl;
}
 std::cout << "Результат: " << endl;
for (m = 0; m < M; m++) //строки. 
{
  for (n = 0; n < N; n++) //столбцы
  {
      a[m][n] = a[m][m] * a[m][n]; //каждый элемент строки m умножаем на элемент a[m][m]
      std::cout <<a[m][n]<< "";
   }
   std::cout << std::endl;
}
system("pause");
return 0;
}
Для проверки работоспособности, лучше M и N уменьшить
0
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 25
31.05.2015, 15:10  [ТС]
Даценд, так что я вообще в ступоре

Добавлено через 28 секунд
Даценд, сейчас протестируем )

Добавлено через 4 минуты
Даценд, пишет что "`endl' undeclared (first use this function)", хотя iostream подключен, подскажите пожалуйста в чём может быть причина?
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
31.05.2015, 15:12
Цитата Сообщение от igorbogdanov Посмотреть сообщение
"`endl' undeclared
Либо подключите пространство имен после инклудов
C++
1
using namespace std;
либо перед endl используйте указание на это пространство имен, т.е. std::endl
0
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 25
31.05.2015, 15:38  [ТС]
Даценд, в конце при выводе результата ошибка на мой взгляд, он как то неправильно умножает, я уменьшил M до 2, N до 4, после ввода данных результат должен быть таким:
1234
30364248
А он другой ;(

vvedite element a[0][0]: 1
vvedite element a[0][1]: 2
vvedite element a[0][2]: 3
vvedite element a[0][3]: 4
vvedite element a[1][0]: 5
vvedite element a[1][1]: 6
vvedite element a[1][2]: 7
vvedite element a[1][3]: 8
isxodnaya matrica:
1234
5678
rezultat:
1234
3036252288
Для продолжения нажмите любую клавишу . . .

Добавлено через 7 минут
Даценд, для нескольких элементов всего выполняет умножение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.05.2015, 15:38
Помогаю со студенческими работами здесь

Все элементы матрицы, оканчивающиеся на 2, умножить на последний элемент соответствующего столбца
Дан двумерный массив целых чисел. Все элементы массива, оканчивающиеся на 2, умножить на последний элемент соответствующего столбца. ...

Увеличить значение каждого элемента столбца матрицы G (N, M) на значение первого элемента соответствующего столбца
Доброго времени суток, помогите плиззз. Есть матрица G(7,5) заполненая случайными числами.Начало я сделала, но не знаю как увеличить...

Уменьшить элементы строки матрицы на значение наименьшего элемента строки
Условие: Составить процедуру, уменьшающую элементы строки матрицы на значение наименьшего элемента строки, если все элементы строки...

Уменьшить элементы строки матрицы на значение наименьшего элемента строки
Помогите пожалуйста решить задачу: Создать процедуру, уменьшающую элементы строки матрицы на значение наименьшего элемента строки,...

Транспонировать матрицу и поменять элементы главной матрицы на сумму цифр соответствующего элемента
Дана матрица размером M*X. Транспонировать матрицу и поменять элементы главной матрицы на сумму цифр соответствующего элемента ,подсчитать...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru