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

Разделить все элементы матрицы на ее максимальный по абсолютной величине элемент

06.04.2018, 14:06. Показов 1573. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если все элементы главной диагонали матрицы А отрицательны, разделить все элементы матрицы на максимальный по абсолютной величине элемент матрицы.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2018, 14:06
Ответы с готовыми решениями:

Разделить все элементы матрицы на максимальный по абсолютной величине элемент матрицы
Добрый день! Помогите пожалуйста с задачей -- напишите код... Если все элементы главной диагонали матрицы отрицательны, разделить все...

Разделить все элементы матрицы на максимальный по абсолютной величине элемент
Если все элементы главной диагонали матрицы А отрицательны, разделить все элементы матрицы на максимальный по абсолютной величине элемент...

Разделить все элементы матрицы на элемент, наименьший по абсолютной величине
дан двухмерный массив размером M*N.преобразовать его по правилу -разделить все элементы матрицы на элемент,наименьший по абсолютной...

8
 Аватар для LegionK
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
06.04.2018, 14:28
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
#include <iostream>
#include <ctime>
#include <iomanip>
#include <cmath>
 
using namespace std;
 
int main()
{
    srand(time(0));
    int size(0);
    cout << "Input size : ";
    cin >> size;
 
    double ** matrix = new double *[size];
    for(int i = 0;i<size;++i)matrix[i] = new double[size];
 
    for(int i = 0;i<size;++i){
        for(int j = 0;j<size;++j){
            matrix[i][j] = 5.0 - (0.1 * (rand() % 160));
            cout << setw(10) << matrix[i][j];
        }
        cout << "\n";
    }
    cout << "\n" << "\n" << "\n";
    double max(matrix[0][0]),counter(0);
    for(int i = 0;i<size;++i){
        for(int j = 0;j<size;++j){
            if(abs(matrix[i][j]) > abs(max))max = matrix[i][j];
            if(i==j && matrix[i][j] < 0)++counter;
        }
    }
    cout << "max : " << max << "\n" << "\n";
    if(counter == size){
        for(int i = 0;i<size;++i){
            for(int j = 0;j<size;++j){
                matrix[i][j] /= max;
                cout << setw(15) << matrix[i][j];
            }
            cout << "\n";
        }
    }
 
    for(int i = 0;i<size;++i){
        delete[]matrix[i];
        delete[]matrix;
    }
 
    cout << endl;
    return 0;
}
0
 Аватар для stzer
140 / 110 / 60
Регистрация: 26.10.2013
Сообщений: 314
06.04.2018, 14:41
Цитата Сообщение от LegionK Посмотреть сообщение
C++
1
2
3
4
5
for(int i = 0;i<size;++i)
{ 
delete[]matrix[i]; 
delete[]matrix; 
}
Ошибочка
0
2 / 2 / 0
Регистрация: 06.04.2018
Сообщений: 157
06.04.2018, 14:45  [ТС]
А где изменять вот это
C++
1
2
3
4
5
for(int i = 0;i<size;++i)
{ 
delete[]matrix[i]; 
delete[]matrix; 
}
0
 Аватар для stzer
140 / 110 / 60
Регистрация: 26.10.2013
Сообщений: 314
06.04.2018, 14:49
cyberlohh,
C++
1
2
3
4
for(int i = 0;i<size;++i) {
    delete[]matrix[i];
}
delete[]matrix;
0
2 / 2 / 0
Регистрация: 06.04.2018
Сообщений: 157
06.04.2018, 14:50  [ТС]
Там ошибка Необработанное исключение по адресу 0x01186471 в ConsoleApplication31.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00008127.
0
 Аватар для LegionK
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
06.04.2018, 14:51
stzer, а че здесь, объясните, пж
0
 Аватар для stzer
140 / 110 / 60
Регистрация: 26.10.2013
Сообщений: 314
06.04.2018, 14:59
LegionK, освобождать память нужно в обратном порядке выделения. Видимо там просто опечатка.
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,921
06.04.2018, 15:18
Вариант с нормальным динамическим массивом:
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main(int argc, char **argv){
  float *mat = NULL;
  unsigned int size, i, j;
  char neg_flag=1;
  scanf("%u", &size);
  mat = (float*)malloc(sizeof(float)*size*size);
  for(i=0; i<size*size; i++)mat[i]=(rand()-RAND_MAX/2);
//если запустить с любым ключом делаем все диагональные элементы отрицательными
  if(argc < 2){
    printf("AAA\n");
    for(i=0; i<size*size; i+=size+1){
      if(mat[i]>=0)mat[i] = -1*(float)(i)-1;
    }
//в противном случае делаем нулевой элемент строго положительным
  }else{
    mat[0] = 1;
  }
//вывод матрицы
  for(j=0; j<size; j++){
    for(i=0; i<size; i++)printf("%f\t", mat[i+j*size]);
    putchar('\n');
  }
/*---------------------------------------------
 * вот тут начинается основной код
 *---------------------------------------------
 */
//проверяем диагональные элементы
  for(i=0; i<size*size; i+=size+1)if(mat[i]>=0){neg_flag=0; break;}
//если все элементы отрицательные
  if(neg_flag){
    float max=mat[0];
    for(i=1; i<size*size; i++)
      if(fabs(mat[i]) > fabs(max))max = mat[i];
    for(i=0; i<size*size; i++)
      mat[i] /= max;
  }
/*---------------------------------------------
 * вот тут основной код кончается
 *---------------------------------------------
 */
//вывод матрицы
  putchar('\n');
  for(j=0; j<size; j++){
    for(i=0; i<size; i++)printf("%f\t", mat[i+j*size]);
    putchar('\n');
  }
//не забываем освободить ресурсы
  free(mat);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.04.2018, 15:18
Помогаю со студенческими работами здесь

Разделить все элементы матрицы на элемент, наибольший по абсолютной величине.
написать в паскале прогу: дан двухмерный массив размером M*N. преобразовать его по правилу: разделить все элементы матрицы на элемент,...

Разделить все элементы матрицы на элемент, наименьший по абсолютной величине
Здравствуйте. Помогите , пожалуйста , переделать программу Дана программа Дан двухмерный массив размером M x N. Преобразовать его...

Разделить элементы матрицы на элемент, наибольший по абсолютной величине
помогите, пожалуйста, решить задание. Задана матрица X(7,11). Образовать матрицу Y(7,11) путем деления всех элементов исходной матрицы...

Найти максимальный по абсолютной величине элемент и поменять его местами с последним элементом матрицы
&quot;Дан двумерный массив, который содержит не более 10 строк и не более 10 столбцов. Найти максимальный по абсолютной величине элемент и...

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 19.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru