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

Задача для начинающих. Нахождение дубликатов. - C++

Восстановить пароль Регистрация
 
Kenny7423
23 / 23 / 8
Регистрация: 01.03.2013
Сообщений: 244
13.09.2013, 12:51     Задача для начинающих. Нахождение дубликатов. #1
Задача:
Напишите программу, которая находит и отображает значения-дубликаты
в 10-элементном массиве целочисленных значений (если таковые в нем
присутствуют).
Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstdlib>
using namespace std;
        int main()
        {
              int str[10];
              int i;
              int j;
         for (i = 0; i < 10; i++)
         str[i] = rand();
           for (i = 0; i < 10; i++){
             for (j = 1; j<10; j++) {
         if( (str[i] == str[i - j]) && ((i-j)>=0))
         cout << " dubliruetsya znachenie " << str[i] ;
         else if ( (str[i] != str[i - j]) && ((i-j)>=0))
         cout << " dublikaty otsutstvuut ";
         break;
         }
         }
        return 0;
        }
Подскажите пожалуйста, что я делаю не так, желательно без кода.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2013, 12:51     Задача для начинающих. Нахождение дубликатов.
Посмотрите здесь:

Помогите найти ошибку C++
Задача о строке. Удаление дубликатов слов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
13.09.2013, 12:59     Задача для начинающих. Нахождение дубликатов. #2
просто отсортируйте массив и ищите два подряд идущих одинаковых элемента
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
13.09.2013, 13:06     Задача для начинающих. Нахождение дубликатов. #3
Цитата Сообщение от Kenny7423 Посмотреть сообщение
if( (str[i] == str[i - j]) && ((i-j)>=0))
* * * * *cout << " dubliruetsya znachenie " << str[i] ;
У вас здесь полный перебор, поэтому правильно будет так:
C++
1
if(str[i] == str[j]) cout << "дублир.";
else здесь явно не нужно(по крайней мере, в такой вариации, как здесь).
А цикл лучше так(чтоб меньше сравнений лишних было
C++
1
2
for (i = 0; i < 10; i++){
             for (j = i+1; j<10; j++) {
Kenny7423
23 / 23 / 8
Регистрация: 01.03.2013
Сообщений: 244
24.09.2013, 12:07  [ТС]     Задача для начинающих. Нахождение дубликатов. #4
Создайте собственную версию стандартной библиотечной функции st.rlen
(). Назовите свою версию mystrlen () и продемонстрируйте ее при-
менение в программе.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <windows.h>
#include <iostream>
using namespace std;
int mystrlen(char*i, int a);
int main()
{
     SetConsoleCP(1251);
     SetConsoleOutputCP(1251);
    int g;
    char str[] = "fdslfenlwk";
    cout << str << " \n";
    g = mystrlen(str);
    cout << " Длина строки равна " << g << "символов \n";
    return 0;
    }
int mystrlen(char'i, int a)
{
    int m = a;
    char x[] = i;
    for(m = 0; x[m]; m++) ++m;
}
Подскажите, я хоть на правильном пути?
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
25.09.2013, 17:06     Задача для начинающих. Нахождение дубликатов. #5
Примерно.
C++
1
2
3
4
int n = 0;
char* cur = data;
while(*cur++!='\0') ++n;
return n;
Yandex
Объявления
25.09.2013, 17:06     Задача для начинающих. Нахождение дубликатов.
Ответ Создать тему
Опции темы

Текущее время: 18:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru