Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2017, 16:11   #1
jaless1991
Пользователь
 
Регистрация: 09.11.2017
Сообщений: 14
По умолчанию Двумерный массив (ошибка программы)

Подскажите пожалуйста, в чём я сделал ошибку? Написал программу вывода максимального элемента в каждой строке матрицы
При запуске первые числа выводит правильно, но потом зацикливает, и выводит ошибку (см. скрин)
Вот код программы:
Код:
#include <iostream>
#include <ctime>        // time()
#include <iomanip>
#include <cstdlib>      // srand(), rand()

int main()
{
	using namespace std; //использование пространственных имён

	setlocale(LC_ALL, "Russian"); //включение функции русского языка в консоли
	int max=0;
	int str, colmn; //объявляем переменные матрицы
	cout << "Введите количество строк массива: "; //поток вывода данных
	cin >> str; //поток ввода данных
	cout << "Введите количество столбцов массива: ";
	cin >> colmn;

	// создание динамического двумерного массива
	int** matrix = new int*[str]; //объявляем массив
	for (int i = 0; i < str; ++i) //создаём строки и столбцы
		matrix[i] = new int[colmn];

	// инициализация матрицы случайными числами
	srand(static_cast<int>(time(NULL)));

	for (int i = 0; i < str; ++i) {
		for (int j = 0; j < colmn; ++j)
			matrix[i][j] = rand() % 41 - 20;    // от -20 до 20
	}
	
	for (int i = 0; i < str; i++) { //с помощью этого цикла выводим наш массив в консоль
		for (int j = 0; j < colmn; j++) {
			cout.width(4);
			cout << matrix[i][j];
		}
		cout << endl;
	}
	/////В этом блоке ищем максимальный элемент//////////////
	cout << "Максимальный элемент в каждой строке : " << endl;
	for (int i = 0; i <= str; i++) {
		for (int j = 0; j <= colmn; j++) {
			if (matrix[i][j] > max) {
				max = matrix[i][j];
			}
		}
		cout <<i<<"-я строка матрицы, в ней максимальный элемент : "<< max << endl; //вывод результата
	}
	cout << endl;
	system("pause"); //задержка консоли
}
Заранее спасибо!
Изображения
Тип файла: jpg 1.jpg (103.2 Кб, 148 просмотров)
jaless1991 вне форума Ответить с цитированием
Старый 04.12.2017, 16:13   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

<= вместо < в условии цикла
waleri вне форума Ответить с цитированием
Старый 04.12.2017, 16:14   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Код:
	for (int i = 0; i <= str; i++) {
		for (int j = 0; j <= colmn; j++) {
С чего тут равенства появились?
p51x вне форума Ответить с цитированием
Старый 04.12.2017, 16:22   #4
jaless1991
Пользователь
 
Регистрация: 09.11.2017
Сообщений: 14
По умолчанию

спасибо, уже заметил но всё-равно выдаёт тот же результат, только без ошибки.
("При запуске первые числа выводит правильно, но потом зацикливает")
jaless1991 вне форума Ответить с цитированием
Старый 04.12.2017, 16:34   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

а кто за Вас будет значение максимального, найденного в предыдущей строке сбрасывать?!

Код:
	/////В этом блоке ищем максимальный элемент//////////////
	cout << "Максимальный элемент в каждой строке : " << endl;
	for (int i = 0; i < str; i++) {
                max = matrix[i][0];
		for (int j = 1; j < colmn; j++) {
			if (matrix[i][j] > max) {
				max = matrix[i][j];
			}
		}
		cout <<i<<"-я строка матрицы, в ней максимальный элемент : "<< max << endl; //вывод результата
	}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.12.2017, 16:35   #6
jaless1991
Пользователь
 
Регистрация: 09.11.2017
Сообщений: 14
По умолчанию

точно...)спасибо огромное!!!!
jaless1991 вне форума Ответить с цитированием
Старый 04.12.2017, 16:36   #7
Мановар
Пользователь
 
Регистрация: 13.11.2016
Сообщений: 84
По умолчанию

Не вижу присвоения max = a[i][0] (берем первый элемент каждой строки за максимальный).
Мановар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный динамический массив. В чем ошибка? RaisaR Общие вопросы C/C++ 5 19.01.2017 21:21
Программирование в VBA: двумерный массив M на N, нужно создать новый одномерный массив TheAnnihilyator Помощь студентам 1 04.06.2014 09:16
Ошибка в коде программы (для индекса требуется массив или указатель). Язык Си Семижон Евгения Помощь студентам 7 20.01.2014 02:45
Ошибка в программе,двумерный массив. PASCAL Ilovesport Помощь студентам 1 24.03.2011 17:47
двумерный массив..преобразование и поиск минимума..в чем ошибка? XanderXage Помощь студентам 4 02.12.2009 12:18