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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2010, 23:35   #1
Guzal
Форумчанин
 
Аватар для Guzal
 
Регистрация: 11.09.2010
Сообщений: 101
По умолчанию найти положение нуля в матрице С++

В матрице найти положение нулевого элемента. Хотя бы один нулевой элемент в матрице всегда существует. Выходные данные Вывести сначала номер строки, а затем - номер столбца нулевого элемента. Если в матрице несколько нулей, выдать позицию любого из них.
Код:
#include <iostream>
using namespace std;

	int main () {
	int n, m;
	int a[n][m];
	cin>>n>>m;

	for (int i=0; i<n; i++) 
	for (int j=0; j<m; j++)
	cin >>a[i][j];              
	
	
	for (int i=0; i<n; i++) 
	for (int j=0; j<m; j++)
	  if (a[i][j] == 0)  cout<<i<<" "<<j; 
	     
	  return 0;
	             }
так выводит индексы...и почему-то зависает если ввести 3 строки(
нужна помощьь...
I'm a rebel. [I think positively].
Guzal вне форума Ответить с цитированием
Старый 22.10.2010, 00:01   #2
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

ты сначала объявляешь массив размерностью nхm, а потом только вводишь n и m, что не есть хорошо
Надо так:
Код:
cin>>n>>m;
int a[n][m];
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 22.10.2010, 00:25   #3
Guzal
Форумчанин
 
Аватар для Guzal
 
Регистрация: 11.09.2010
Сообщений: 101
По умолчанию

точно, спасибо, вот только еще проблема, выводится не то что надо(
например

3 4
0 1 2 3
4 5 0 1
2 3 4 5

будет
2 3 или 1 1
а у меня
0 0 1 2
I'm a rebel. [I think positively].
Guzal вне форума Ответить с цитированием
Старый 22.10.2010, 07:29   #4
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Выводится все правильно, т.к с C нумерация элементов массива начинается с 0.
Чтобы вывести "человеческие" номера элементов
Код:
 if (a[i][j] == 0)  cout<<i+1<<" "<<j+1;
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти в матрице квадратную подматрицу Apis Помощь студентам 3 26.04.2010 21:18
поиск нуля в матрице ciaonataha Общие вопросы C/C++ 13 31.03.2009 21:29
Паскаль. Массивы. Найти положение значений vacia78 Помощь студентам 4 05.03.2009 21:50
Найти вектор в квадратной матрице... (С++) Alex88 Помощь студентам 2 19.11.2008 18:25