Вообщем дана последовательность слов. между словами запятая, за последним точка. Нужно напечатать все слова, встречающиеся более одного раза.
последовательность я в двумерный массив запихала. Теперь нужно посравнивать слова. Как это сделать? не получается ((
Другие языки программирования и технологии
помогите с программой!!! (Си) Двумерный массив+строки
Если слова уже в массиве, то начиная с первого слова сравниваем его с последующими. Если есть хоть одно совпадение, то выводим это слово. Одинаковые слова в массиве лучше сразу заменять на пробел - что бы не было повторов. Таким образом должно быть два вложенных цикла.
p.s.: не совсем ясно зачем здесь двухмерный массив...
p.s.: не совсем ясно зачем здесь двухмерный массив...
Функция сравнения строк: strcmp.
Функция быстрой сортировки: qsort.
после того, как слова загружены в массив, этот массив можно отсортировать. Тогда одинаковые слова встанут рядом.
Останется только пробежаться по этому массиву и посмотреть - равны ли текщее и предыдущее слово...
Функция быстрой сортировки: qsort.
после того, как слова загружены в массив, этот массив можно отсортировать. Тогда одинаковые слова встанут рядом.
Останется только пробежаться по этому массиву и посмотреть - равны ли текщее и предыдущее слово...
Пиши функцию
входные парам:
Функция Сравнение (Слово1,Слово2)
сравнивает по символьно (взяла первый символ проверила, если совпала пошла дальше на втрой символ в слове и ак до конца строки, если не совпали - вываливаешься из функции с 0)
Возвращает если равны 1, если нет 0
входные парам:
Функция Сравнение (Слово1,Слово2)
сравнивает по символьно (взяла первый символ проверила, если совпала пошла дальше на втрой символ в слове и ак до конца строки, если не совпали - вываливаешься из функции с 0)
Возвращает если равны 1, если нет 0
дома где то исходник был, если не забуду гляну
#include <cstdio>
#include <string>
#include <conio.h>
int count(int p, char *w[], int fl[], int n)
{
int cnt = 1, j = 0;
if (fl[p] == 0)
{
for (j = 0; j < n; ++j)
{
if (p != j && strcmp(w[j], w[p]) == 0)
{
cnt++;
fl[j] = 1;
}
}
}
return cnt;
}
int main()
{
char *words[] = {"one", "two", "three", "two", "one", "one"};
int ind[] = {0, 0, 0, 0, 0, 0};
int n = 6;
int j;
for (j = 0; j < n; ++j)
{
if (count(j, words, ind, n) > 1)
{
printf("%s\n", words[j]);
}
}
getch();
return 0;
}
#include <string>
#include <conio.h>
int count(int p, char *w[], int fl[], int n)
{
int cnt = 1, j = 0;
if (fl[p] == 0)
{
for (j = 0; j < n; ++j)
{
if (p != j && strcmp(w[j], w[p]) == 0)
{
cnt++;
fl[j] = 1;
}
}
}
return cnt;
}
int main()
{
char *words[] = {"one", "two", "three", "two", "one", "one"};
int ind[] = {0, 0, 0, 0, 0, 0};
int n = 6;
int j;
for (j = 0; j < n; ++j)
{
if (count(j, words, ind, n) > 1)
{
printf("%s\n", words[j]);
}
}
getch();
return 0;
}
Похожие вопросы
- Составить программы формирования двумерного массива
- Как задать двумерный массив строк в C? Как его потом заполнять?
- Помогите решить задачу pascal. Двумерные массивы (подробно)
- Помогите составить программу по одномерному массиву visual basic.
- Необходимо упорядочить строки двумерного массива, по возрастанию первого эл-та. СИ.
- Помогите !!!С++Работа с одномерными и двумерными массивами. В каждой строке матрицы F(k, k) элемент. лежащий на главной
- в двумерном массиве возвестив квадрат строки, расположенные между строками с мин и макс элементами
- помогите срочно надо Квадратные массивы тема: Двумерные массивы на языке C++
- .помогите пожалуйста двумерный массив на языке c++
- Динамические двумерные массивы С++. Помогите разобраться.