3 / 3 / 0
Регистрация: 11.11.2010
Сообщений: 38
1

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

27.11.2011, 17:04. Показов 2684. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2011, 17:04
Ответы с готовыми решениями:

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

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

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

Найти максимальное число встречающееся в матрице более одного раза
1 пункт выполнен, не могу реализовать 2 и 3 через многофункциональность. Дана целочисленная...

7
24 / 24 / 4
Регистрация: 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
3 / 3 / 0
Регистрация: 11.11.2010
Сообщений: 38
27.11.2011, 18:38  [ТС] 3
ну это же динамический массив и заранее я не знаю , сколько повторяющих слов будет
0
24 / 24 / 4
Регистрация: 13.03.2011
Сообщений: 326
27.11.2011, 18:48 4
но если в цикле каждый раз создавать новый массив, данные о старом(ых) будут утрачены...
или я чего-то не догоняю
да и delete не хватает
0
3 / 3 / 0
Регистрация: 11.11.2010
Сообщений: 38
27.11.2011, 19:46  [ТС] 5
Цитата Сообщение от Lupus Посмотреть сообщение
но если в цикле каждый раз создавать новый массив, данные о старом(ых) будут утрачены...
или я чего-то не догоняю
да и delete не хватает
да это я уже догнал , щас проблема в другом ,
я создал 2ой массив в который переношу на время , но проблема в том что когда я удаляю первый массив , то значение во втором тоже затирается. тк значение из первого я переношу во 2ой через указатель
0
24 / 24 / 4
Регистрация: 13.03.2011
Сообщений: 326
27.11.2011, 19:48 6
Цитата Сообщение от Skip Посмотреть сообщение
да это я уже догнал , щас проблема в другом ,
я создал 2ой массив в который переношу на время , но проблема в том что когда я удаляю первый массив , то значение во втором тоже затирается. тк значение из первого я переношу во 2ой через указатель
Я вообще по указателям не силен, но здесь скорее всего нужен еще один указатель.
А так, вообще, если это не лаба по массивам, я бы смотрел в сторону STL-контейнеров, листа в частности
0
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2011, 20:48
Помогаю со студенческими работами здесь

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

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

Найти максимальное значение, встречающееся в массиве более одного раза
как в массиве найти максм значение, которое встречается более одного раза? максим элемент я нашел...

Найти максимальное из чисел, встречающихся в заданной матрице более одного раза
дана целочисленная прямоугольная матрица определить: максимальное из чисел встречающихся в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru