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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2012, 22:21   #1
zoom-zoom
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 11
Лампочка двухмерный массив

необходимо как то исправить код функции, помогите пожалуйста
задача.существуют ли строки все элементы на нечетных местах которой четные
Код:
bool uslov (int n, int a[N][N])
{
	int k=0;	 //заводим счетчик,для подсчета четных элементов
	int s=0,j;	//счетчик для потчсета хороших строк
	for(int i=0; i<n; i++)  //перебор по строкам
	{
		for(int j=0; j<n; j+=2){		// цикл для просмотра элементов в строке
			if(a[i][j]%2==0){
				k++;
					
			}
			if(k>=n)					
					break;
			
		}		return false;
	}
	return true;


}
что пробовал, но все это не дает мне нужный результат, помогите пожалуйчта

Последний раз редактировалось zoom-zoom; 13.12.2012 в 22:25.
zoom-zoom вне форума Ответить с цитированием
Старый 13.12.2012, 22:27   #2
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Код:
bool uslov (int n, int a[N][N])
не слышал, что так можно
Код:
bool uslov(int n, int** a)
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Старый 13.12.2012, 22:29   #3
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Код:
if(k>=n)
Не n, а n/2, элементов на нечетных местах в два раза меньше же

Цитата:
Сообщение от Perchik71
не слышал, что так можно
Можно, если N - константа
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 13.12.2012, 22:36   #4
zoom-zoom
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Код:
if(k>=n)
Не n, а n/2, элементов на нечетных местах в два раза меньше же
эх...это то я понимаю...просто этот код менял много раз, изначально
Цитата:
Сообщение от zoom-zoom Посмотреть сообщение
if(k>=n)
я планировал сверять j...но и с ним ни к чему не пришел, помогите с кодом, пожалуйста
zoom-zoom вне форума Ответить с цитированием
Старый 14.12.2012, 11:23   #5
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Уточните, что не получается. На мой взгляд ошибка в начальном k.

Код:
bool uslov (int n, int a[N][N])
{
	int k=0;	 //заводим счетчик,для подсчета четных элементов
	//int s=0,j;	//счетчик для потчсета хороших строк
	for(int i=0; i<n; i++)  //перебор по строкам
	{
                 k=0; 
		for(int j=0; j<n; j+=2)
                  {		// цикл для просмотра элементов в строке
			if(a[i][j]%2==0)
                      	k++;
					
		   }
			if(k=n/2)	//Условие д.б. жесткое
			return true;
	}
	return false;


}
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 14.12.2012 в 11:26.
Sweta вне форума Ответить с цитированием
Старый 14.12.2012, 11:47   #6
zoom-zoom
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Sweta Посмотреть сообщение
Уточните, что не получается.[/CODE]
у меня не получается вот что... из условия задачи у меня есть матрица n*n и чтобы условие было правдой в этой матрице должна быть хотя бы одна строка в которой все элементы на нечетных местах которой должны быть четными, а если такой нет то лож...НАПРИМЕР

Код:
верная матрица
2  1  4
3  5  7
1  1  1

или (тоже верная)
1  3  5
1  4  6
8  6  2

неверная матрица
1  1  1
1  1  1
1  1  1
zoom-zoom вне форума Ответить с цитированием
Старый 14.12.2012, 12:11   #7
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Вы просто повторили текст задания, что именно у Вас не получается, когда Вам дважды указали на ошибку, все еще не ясно.
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 14.12.2012, 14:28   #8
zoom-zoom
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Вы просто повторили текст задания, что именно у Вас не получается, когда Вам дважды указали на ошибку, все еще не ясно.
что не получается...ну ошибку то я понял, но мне она не дает нужный результат, данная функция сейчас только проверяет на правильность элементов в строке, а я вот хотел куда то поставить новый счетчик чтобы он считал количество хороших или плохих строк но не получилось что то...
zoom-zoom вне форума Ответить с цитированием
Старый 14.12.2012, 15:08   #9
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Код:
bool uslov (int n, int a[N][N])
{
	int k=0;	 //заводим счетчик,для подсчета четных элементов
	int s=0,j;	//счетчик для подчсета хороших строк
	for(int i=0; i<n; i++)  //перебор по строкам
	{
                 k=0; 
		for(int j=0; j<n; j+=2)
                  {		// цикл для просмотра элементов в строке
			if(a[i][j]%2==0)
                      	k++;
					
		   }
			if(k=n/2)	//Условие д.б. жесткое
			s+=1;
                   }
if(s!=0)
return true;
else
	return false;
}
но если Вам необходимо вернуть количество строк, то функция д.б. int и в конце return s;, а в основной программе, анализ возвращаемого значения на 0.
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 14.12.2012 в 16:01.
Sweta вне форума Ответить с цитированием
Старый 14.12.2012, 16:09   #10
zoom-zoom
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 11
По умолчанию

спасибо большое, а то не знал куда этот счетчик уже пихнуть, вот только 1 вопрос почему
Цитата:
Сообщение от Sweta Посмотреть сообщение
if(k=n/2)
а не if(k>=n/2)? ведь если взять пример матрицы 3*3 то не подойдет вроде, к там больше получается чем n/2

а на счет
Цитата:
Сообщение от Sweta Посмотреть сообщение
но если Вам необходимо вернуть количество строк, то функция д.б. int и в конце return s;, а в основной программе, анализ возвращаемого значения на 0.
мне ни нужна логическая функция, мне только ответ нужен да или нет)))

еще раз, спасибо)))
zoom-zoom вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с массивами Seran4ek Общие вопросы Delphi 1 11.04.2010 17:48
работа с массивами Pitbull_03 Помощь студентам 1 25.03.2010 15:52
Работа с массивами GaSST Microsoft Office Excel 5 24.03.2010 05:12
Помогите с двухмерными массивами Dimati87 Помощь студентам 2 04.05.2009 11:40