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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Skip
3 / 3 / 0
Регистрация: 11.11.2010
Сообщений: 38
#1

Найти слова, повторяющиеся более одного раза, не могу найти ошибку - C++

27.11.2011, 17:04. Просмотров 1218. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
using namespace std;
 
void obr1(char **s, char **mas, int n, int m)
{
    int i;
    int k;
    char *tm;
    for(i = 0; i < n; i++)
    {
        k = -1;
        tm = s[i];
        for(i = 0; i < n; i++)
        {
            if (strcmp(tm,s[i])==0)
            {
                k++;
            }
        }
        if(k > 0)
        {
            m++;
            mas = new char *[m]();
            mas[m-1]=tm;
        }
    }
    for(i = 0; i < m; i++)
    {
        cout << mas[i] << "\n";
    }
}
s-массив слов.
mas - массив в который надо записать все слова встречающиеся более одного раза.
n - размер массива s.
m - размер массива mas.

собственно , не могу понять ошибку , по идее должен записывать слова встречающиеся в массиве несколько раз , но не записывает.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2011, 17:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти слова, повторяющиеся более одного раза, не могу найти ошибку (C++):

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

Найти максимальное число из, встречающихся в матрице более одного раза - C++
Хей. Есть рабочая программа, но для её полной правильности в ней нужно использовать Функцию или процедуру. Задание: Найти максимальное...

Найти максимальное значение, встречающееся в массиве более одного раза - C++
как в массиве найти максм значение, которое встречается более одного раза? максим элемент я нашел #include &quot;stdio.h&quot; ...

Найти максимальное из чисел встречающихся в массиве более одного раза - C++
Найти максимальное из чисел, встречающихся в данном одномерном массиве более одного раза. Вывести количество посторов этого числа.

Найти максимально из чисел, встречающегося в матрице более одного раза - C++
Привет! Выполните задание,оформив каждый пункт с помощью функций,все необходимые данные должны передаваться в ф-ю в...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Lupus
22 / 22 / 1
Регистрация: 13.03.2011
Сообщений: 326
27.11.2011, 18:28 #2
Цитата Сообщение от Skip Посмотреть сообщение
C++
1
2
3
4
5
6
if(k > 0) 
{ 
     m++; 
     mas = new char *[m](); 
     mas[m-1]=tm; 
}
Смотрится не очень, особенно запись в ячейку с индексом равному размеру массива
0
Skip
3 / 3 / 0
Регистрация: 11.11.2010
Сообщений: 38
27.11.2011, 18:38  [ТС] #3
ну это же динамический массив и заранее я не знаю , сколько повторяющих слов будет
0
Lupus
22 / 22 / 1
Регистрация: 13.03.2011
Сообщений: 326
27.11.2011, 18:48 #4
но если в цикле каждый раз создавать новый массив, данные о старом(ых) будут утрачены...
или я чего-то не догоняю
да и delete не хватает
0
Skip
3 / 3 / 0
Регистрация: 11.11.2010
Сообщений: 38
27.11.2011, 19:46  [ТС] #5
Цитата Сообщение от Lupus Посмотреть сообщение
но если в цикле каждый раз создавать новый массив, данные о старом(ых) будут утрачены...
или я чего-то не догоняю
да и delete не хватает
да это я уже догнал , щас проблема в другом ,
я создал 2ой массив в который переношу на время , но проблема в том что когда я удаляю первый массив , то значение во втором тоже затирается. тк значение из первого я переношу во 2ой через указатель
0
Lupus
22 / 22 / 1
Регистрация: 13.03.2011
Сообщений: 326
27.11.2011, 19:48 #6
Цитата Сообщение от Skip Посмотреть сообщение
да это я уже догнал , щас проблема в другом ,
я создал 2ой массив в который переношу на время , но проблема в том что когда я удаляю первый массив , то значение во втором тоже затирается. тк значение из первого я переношу во 2ой через указатель
Я вообще по указателям не силен, но здесь скорее всего нужен еще один указатель.
А так, вообще, если это не лаба по массивам, я бы смотрел в сторону STL-контейнеров, листа в частности
0
Skip
3 / 3 / 0
Регистрация: 11.11.2010
Сообщений: 38
27.11.2011, 20:04  [ТС] #7
эх если бы -__-
0
-=ЮрА=-
Заблокирован
Автор FAQ
27.11.2011, 20:48 #8
Skip, что вообще надо из текста перепсать слова несколько раз в нём встречающиеся в другой 2-х мерный массив?Язык Си/С++?Вообще я бы рекомендовал использовать std::string но это так. Основное - что нужно сделать в программе + ввод текста с клавиатуры или файла, пишем!

Добавлено через 1 минуту
Цитата Сообщение от Skip Посмотреть сообщение
if(k > 0)
* * * * * * * * {
* * * * * * * * * * * * m++;
* * * * * * * * * * * * mas = new char *[m]();
* * * * * * * * * * * * mas[m-1]=tm;
* * * * * * * * }
- это концептуально неверный подход - нужно добавлять к уже имеющемся массиву а не создавать новый, данные о предыдущих словах просто будут уничтожены...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2011, 20:48
Привет! Вот еще темы с ответами:

Найти и напечатать числа, которые встречаются в массиве более одного раза - C++
Одномерный массив А состоит из 30 элементов. Найти и напечатать числа, которые встречаются в массиве более одного раза.

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

найти максимальное из чисел, встречающееся в заданном целочисленном массиве более одного раза - C++
Здравствуйте! Помогите, пожалуйста, с задачей: найти максимальное из чисел, встречающееся в заданном целочисленном массиве более одного...

Найти и вывести все числа, которые присутствуют в векторе более одного раза - C++
// 2) a = // Найти и вывести все числа, которые присутствуют в списке более одного раза. пытался вот как то так) // 2) a = //...


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

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

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