Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
OffSide
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 111
#1

Два разных элемента - C++

01.11.2010, 16:25. Просмотров 1372. Ответов 35
Метки нет (Все метки)

Дан целочисленный двумерный массив А размера n*m. Известно, что среди его элементов два и только два равны между собой. Напечатать их индексы.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2010, 16:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Два разных элемента (C++):

Последовательность целых чисел. Найти два минимальных / два максимальных элемента - C++
Дана последовательность целых чисел a1,a2,...,an, где n=> 3. Найти: а) два максимальных элемента последовательности; б) два минимальных...

Вставить два элемента после мах элемента и перед ним - C++
Составить программу решения задачи на С++, использовать процедуры введения и вывода массивов, выделить в задаче вспомогательные алгоритмы и...

Вставить два элемента по 1000, начиная с четвертого элемента исходного массива, сдвигая его элементы - C++
Помогите с созданием программы, которая выполняет следующие действия: a) одномерный массив из 10 элементов целого типа в диапазоне ; b)...

Два разных operator[] - C++
Зачем нужны в классе два перегруженых оператора operator и почему первый без const? Ето пример из книги Прата class Student { ...

Найти два таких два таких элемента, разность модулей которых имеет максимальное значение - C++
в целочисленном массиве найти два таких два таких элемента,разность модулей котооых имеет максимальное значение, и удалить из их состава...

После каждого четного элемента массива вставить два элемента с тем же значением, после чего полученный массив отсортировать по убыванию - C++
Ребят, помогите с задачкой новичку. После каждого четного элемента массива вставить два элемента с тем же значением, после чего...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.11.2010, 19:42 #16
сейчас напишу тебе для борланд
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
04.11.2010, 19:48 #17
M128K145,
читается мб и хуже, но пойдет если взять за правило не использовать goto (не смотря на то, что здесь он впринципе в тему).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    try
    {
        for(i = 0; i < arraySize; ++i)
          for(j = 0; j < arraySize; ++j)
           for(k = 0; k < arraySize; ++k)
            for(l = 0; l < arraySize; ++l)
             if(i != k && j != l && array[i][j] == array[k][l])
             {
                std::cout<<"i = "<<i<<"\tj = "<<j<<
                "\nk = "<<k<<"\tl = "<<l<<std::endl;
                throw 0;
             }
    }
    catch(...)
    {
    }
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.11.2010, 20:21 #18
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#define n 2
#define m 5
 
int main ()
 
{ int i,j,a,b;
   int mt[n][m]={{1,2,3,4,5},
                       {1,6,7,8,9}};
 
for (i=0; i<n;i++)
for (j=0;j<m;j++)
{b=j+1;
for (a=i;a<n;a++){if (b!=j+1) {b=0;}
while(b<m){
if (mt[i][j]==mt[a][b])
{printf ("mt[%d][%d]=%d", i,j,mt[i][j]);
 printf ("\nmt[%d][%d]=%d", a,b,mt[a][b]);
}b++;}}}
 
 
return 0;
}
Работает
Проверял http://codepad.org/JQOWJS0d
и составлена просто и понятно

Добавлено через 17 минут
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#define n 2
#define m 5
 
int main ()
 
{ int i,j,a,b,c;
   int mt[n][m]={{1,2,3,4,5},
                       {1,6,7,8,9}};
 
for (i=0; i<n;i++)
for (j=0;j<m;j++)
{if (j+1!=m) {b=j+1;c=i;} else {b=0;c=i+1;}
for (a=c;a<n;a++){if (b!=j+1) {b=0;}
while(b<m){
if (mt[i][j]==mt[a][b])
{printf ("mt[%d][%d]=%d", i,j,mt[i][j]);
 printf ("\nmt[%d][%d]=%d", a,b,mt[a][b]);
}b++;}}}
 
 
return 0;
}
Исправил кое-какую неточностьhttp://codepad.org/j1YYh6eo
1
OffSide
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 111
04.11.2010, 20:37  [ТС] #19
можно вкратце принцип работы? я изучаю этот язык всего 2 месяца.
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.11.2010, 21:18 #20
Цитата Сообщение от OffSide Посмотреть сообщение
можно вкратце принцип работы? я изучаю этот язык всего 2 месяца.
а что рассказывать?
все очень просто
берем первый элемент в массиве (для этого первых два цикла)
затем сравниваем его со всеми следующими элементами
затем берем следующий и сравниваем его также
если нашли нужный - выводим
я не усложнял программу, и она будет делать много ненужных действий после находки элемента
можно оптимизировать
какая строчка не понятна?!
0
OffSide
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 111
04.11.2010, 21:21  [ТС] #21
ну например что означают 2 и 3 строчки и что они означают?
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
05.11.2010, 01:10 #22
ForEveR, а теперь то же самое изобразите на С, пожалуйста.
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.11.2010, 01:43 #23
M128K145, Ну про Си я ведь не говорил не правда-ли?) Это С++ способ.
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
05.11.2010, 08:31 #24
Цитата Сообщение от ForEveR Посмотреть сообщение
Это С++ способ.
Я знаю, вот поэтому и попросил сделать на С. Пока что более удобного варианта никто не предложил
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.11.2010, 11:37 #25
M128K145, Его и не будет.
Либо заворачивать в while, что не круто.
Либо доп. переменную, что не столь красиво.
Либо goto, что тут подходит
0
KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
05.11.2010, 16:19 #26
Цитата Сообщение от M128K145 Посмотреть сообщение
Я знаю, вот поэтому и попросил сделать на С. Пока что более удобного варианта никто не предложил
Т.е. мой вариант с вынесением функционала в отдельную процедуру это по вашему не нормальный вариант?
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
05.11.2010, 17:22 #27
KpeHDeJIb, разговор идет не о решении, а о выходе из вложенных for и эффективности использования goto или поиск альтернативы
0
KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
05.11.2010, 18:33 #28
Цитата Сообщение от M128K145 Посмотреть сообщение
KpeHDeJIb, разговор идет не о решении, а о выходе из вложенных for и эффективности использования goto или поиск альтернативы
Ну так я и предложил альтернативу - написание процедуры, один из стандартных подходов в такой ситуации. Еще один это флаг, goto очень опасный оператор, впринципе в данном случае использование его допустимо, но прежде чем вставить goto лучше несколько раз подумать, не нарушит ли это execution flow всей программы, не повлечет ли за собой потенциальных трудноуловимых ошибок. Я лично вместо подобных размышлений предпочитаю обезопасить себя заранее.
0
OffSide
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 111
05.11.2010, 18:35  [ТС] #29
Добавлено через 17 минут
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#define n 2
#define m 5
 
int main ()
 
{ int i,j,a,b,c;
   int mt[n][m]={{1,2,3,4,5},
                       {1,6,7,8,9}};
 
for (i=0; i<n;i++)
for (j=0;j<m;j++)
{if (j+1!=m) {b=j+1;c=i;} else {b=0;c=i+1;}
for (a=c;a<n;a++){if (b!=j+1) {b=0;}
while(b<m){
if (mt[i][j]==mt[a][b])
{printf ("mt[%d][%d]=%d", i,j,mt[i][j]);
 printf ("\nmt[%d][%d]=%d", a,b,mt[a][b]);
}b++;}}}
 
 
return 0;
}
Исправил кое-какую неточностьhttp://codepad.org/j1YYh6eo[/QUOTE]

ребят, а эта прога вообще катируеца, не?
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
05.11.2010, 19:57 #30
Цитата Сообщение от OffSide Посмотреть сообщение

ребят, а эта прога вообще катируеца, не?
работает
значит нормально
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2010, 19:57
Привет! Вот еще темы с ответами:

Два разных массива записать последовательно в третий - C++
Пожалуйста помогите! Ввод-два массива разной длинны.Записать в третий-сначала идут элементы первого затем второго массива. Зарание...

Как записать два разных класса в массив? - C++
допустим есть vector&lt;class_a&gt; cont_a; vector&lt;class_b&gt; cont_b; // тут мы их заполнили допустим по 800 элементов в каждом векторе.и...

Разнести данные и методы в два разных класса - C++
Товарищи скорректируйте в какую сторону двигаться. Есть задача создать библиотеку из двух классов. Один содержит поля с характеристиками...

Как вывести два массива разных сортировок? - C++
Необходимо сделать одну программу , где нужно вывести сначала неотсортированный массив, затем один массив отсортированный вставками, и один...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.11.2010, 19:57
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru