|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.12.2020, 15:27 | #1 |
Регистрация: 03.12.2020
Сообщений: 6
|
Как переделать код?
Короче условие вот такое: Получить новую матрицу путем деления всех элементов данной матрицы на ее самый большой за модулем элемент. с++
Что не так в коде и почему он не делает это?а, еще не работает продолжить работу в консоли не выходя из нее (цикл) #include <iostream> #include <limits.h> #include <windows.h> #include <string> #include <time.h> #include <math.h> #define COLUMNS 10 using namespace std; void inputTwoDimensionalArray(short[][COLUMNS], int, int); void outputTwoDimensionalArray(short[][COLUMNS], int, int); void outputTwoDimensionalArray(int[][COLUMNS], int, int); void calculateResultMatrix(short[][COLUMNS], int[][COLUMNS], int, int); bool isInRangeOf(int, int, int); int main() { SetConsoleOutputCP(1251); char answer = '1'; short arr[COLUMNS][COLUMNS]; int resMat[COLUMNS][COLUMNS]; int m, n; while (answer == '1') { srand((unsigned)time(NULL)); cout << "Введите число M" << endl; cin >> m; if (!isInRangeOf(m, COLUMNS, 0)) { cout << "Ошибка, введите число 0 < М <= 10 " << endl; continue; } cout << "Введите число N" << endl; cin >> n; if (!isInRangeOf(n, COLUMNS, 0)) { cout << "Ошибка, введите число 0 < N <= 10 " << endl; continue; } inputTwoDimensionalArray(arr, m, n); cout << endl << "ВХОДНАЯ МАТРИЦА" << endl << endl; outputTwoDimensionalArray(arr, m, n); calculateResultMatrix(arr, resMat, m, n); cout << endl << "ВЫХОДНАЯ МАТРИЦА" << endl << endl; outputTwoDimensionalArray(resMat, m, n); cout << "Желаете продолжить? 1 - да, другая клавиша - нет" << endl; cin >> answer; } return 0; } void inputTwoDimensionalArray(short a[][COLUMNS], int m, int n) { bool choose; cout << "Для ввода данных вручную нажмите 1, для случайного - 0" << endl; cin >> choose; if (choose) { cout << endl << "РУЧНОЙ ВВОД" << endl << endl; int number; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { cout << "Введите элемент " << i << " " << j << endl; cin >> number; if (!isInRangeOf(number, SHRT_MAX, SHRT_MIN)) { cout << "Число не принадлжит диапазону short. Повторите ввод!" << endl; j--; continue; } a[i][j] = number; } } } else { cout << endl << "СЛУЧАЙНЫЙ ВВОД" << endl << endl; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { cout << "Сгенерирован элемент " << i << " " << j << endl; a[i][j] = (rand() % 100) * ((rand() % 2) ? 1 : -1); cout << a[i][j] << endl; } } } } void outputTwoDimensionalArray(int a[][COLUMNS], int m, int n) { for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { cout << a[i][j] << '\t'; } cout << endl; } } void outputTwoDimensionalArray(short a[][COLUMNS], int m, int n) { for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { cout << a[i][j] << '\t'; } cout << endl; } } void calculateResultMatrix(short inputMatrix[][COLUMNS], int resMatrix[][COLUMNS], int m, int n) { // Ищем наименьший элемент int min = 0; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (abs(inputMatrix[i][j]) < abs(min)) { min = inputMatrix[i][j]; } } } // умножаем матрицу на ее минимальный элемент for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { resMatrix[i][j] = inputMatrix[i][j] * min; } } } bool isInRangeOf(int number, int b1, int b2) { if (number > b1 || number < b2) return false; return true; } |
27.12.2020, 17:58 | #2 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,311
|
1.
а) Отформатируй код. б) Выдели его и вставь в окно ввода. в) Выдели код в окне ввода и нажми кнопку, которая находится над формой ввода. Копаться в таком коде лень. 2. Вместе с тем: Цитата:
Но в коде: Код:
Как-то так, ...
|
|
28.12.2020, 18:43 | #3 |
Регистрация: 03.12.2020
Сообщений: 6
|
ViktorR,
не срисовывал, решил не свой варик, а что касается По Модулю, то да, За модулем |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как переделать код PHP на VBA? | Metrologik | Microsoft Office Excel | 3 | 31.07.2017 03:02 |
Как переделать код? - C (СИ) | username12 | Общие вопросы C/C++ | 2 | 18.12.2015 17:07 |
Как переделать код | Дмитрий_dz | Общие вопросы Delphi | 3 | 17.12.2012 01:50 |
как переделать код макроса | омарат | Microsoft Office Excel | 1 | 25.05.2010 20:57 |
Как переделать код? | P®o©omp@s | Помощь студентам | 2 | 26.10.2009 19:21 |