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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2012, 00:01   #1
XAPOH
Пользователь
 
Аватар для XAPOH
 
Регистрация: 23.10.2010
Сообщений: 15
По умолчанию одинаковые элементы

задание: вывести на экран повторяющиеся элементы (вводим цифру - 4 к примеру, и если в матрице есть таких цифр 2 и более то получить сообщение "4 повторяется"). вот что я наклепал но в любом случае пишет что "нет элементов".но вот если ввести цифру 2, даже если ее нет в матрице, пишет что повторяется.обьясние что не так в коде пожалуйста.
Код:
#include <iostream.h>
int main()
{ int matr[3][3];
	int x;
	int b=0;

	for(int i=0;i<3;i++)
	{ cout<<"vvedite chisla "<<i+1<<" stroki\n";
	for(int j=0;j<3;j++)
	cin>> matr[3][3];
	}	
	  
	cin>>x;
	for (int i=0;i<3;i++)
	{
  	  for (int j=0;j<3;j++)
     if (matr[i][j] == x) 
     {b=1;break;}
     if (b)
    cout<< x <<" povtoryaetsa ";
    else
    cout<<" net elementa ";
 	 return 0;
    
   }
}
XAPOH вне форума Ответить с цитированием
Старый 17.02.2012, 00:32   #2
9i.
Форумчанин
 
Регистрация: 29.09.2011
Сообщений: 103
По умолчанию

Цитата:
Сообщение от XAPOH Посмотреть сообщение
Код:
#include <iostream.h>
int main()
{ int matr[3][3];
	int x;
	int b=0;

	for(int i=0;i<3;i++)
	{ cout<<"vvedite chisla "<<i+1<<" stroki\n";
	for(int j=0;j<3;j++)
	cin>> matr[3][3];
	}	

}
ввод не массив[3][3], а массив[i][j]
9i. вне форума Ответить с цитированием
Старый 17.02.2012, 01:51   #3
XAPOH
Пользователь
 
Аватар для XAPOH
 
Регистрация: 23.10.2010
Сообщений: 15
По умолчанию

Код:
#include <iostream.h>
int main()
{ int matr[3][3];
	int x;
	int b=0;

	for(int i=0;i<3;i++)
	{ cout<<"vvedite chisla "<<i+1<<" stroki\n";
	for(int j=0;j<3;j++)
	cin>> matr[i][j];  // тут изменил
	}	
	  
	cin>>x;
	{for (int i=0;i<3;i++)
   for (int j=0;j>=0;j++)    //тут поменял условие
     if (matr[i][j] == x) 
     {b=1;break;}
     if (b)
    cout<< x <<" povtoryaetsa "; 
    return 0;
  	}
}
убрал else,так как теперь если число не повторяется, то вылетает ошибка.и еще всегда пишет что повторяется число 1 и 9, в остальном работает нормально.
XAPOH вне форума Ответить с цитированием
Старый 17.02.2012, 10:14   #4
9i.
Форумчанин
 
Регистрация: 29.09.2011
Сообщений: 103
По умолчанию

условие менять не нужно было j<3 правильно
9i. вне форума Ответить с цитированием
Старый 17.02.2012, 13:29   #5
reserv
Пользователь
 
Регистрация: 17.02.2012
Сообщений: 10
По умолчанию

Надо проверить, но похоже что так верно.

Код:
#include <iostream.h>
int main()
{ 
int matr[3][3];
int x;
int b=0;

for(int i=0;i<3;i++)
{ 
cout<<"vvedite chisla "<<i+1<<" stroki\n";
for(int j=0;j<3;j++)
cin>> matr[i][j];
}	
  
cin>>x;
for (int i=0;i<3;i++)
{
  for (int j=0;j<3;j++)
   if (matr[i][j] == x) 
   {
     if(b==1) {b=2; break;}
      else b=1;
   }
   if (b==2) break;
}
   if (b==2)
    cout<< x <<" povtoryaetsa ";
   else
    {
    if (b == 1) cout<< x <<" vstrechaetsya 1 raz ";
    else cout<<" net elementa ";
    }
return 0;
}
reserv вне форума Ответить с цитированием
Старый 17.02.2012, 23:31   #6
XAPOH
Пользователь
 
Аватар для XAPOH
 
Регистрация: 23.10.2010
Сообщений: 15
По умолчанию

да, все верно работает, огромное спасибо
XAPOH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
одинаковые элементы в матрице. Delphi Megafono4ka Помощь студентам 1 18.12.2010 21:27
Си найти одинаковые идущие подряд элементы и удалить один из них Денни Помощь студентам 8 15.02.2010 01:41
одинаковые элементы массива на си elka Помощь студентам 9 25.01.2010 21:57
Одинаковые элементы kodov Общие вопросы Delphi 3 11.08.2008 14:03