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

Вывести те слова, которые отличаются от последнего слова и удовлетворяют условию, что в слове нет повторяющихся букв - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти коэффициенты произведения многочленов http://www.cyberforum.ru/cpp-beginners/thread770875.html
Помогите пожалуйста решить эту задачу, используя массивы. Данные задачи в картинке. Буду очень благодарен!
C++ Класс линия Задание: описать класс линии, в котором конструктор ещё и рисует её. (это сделано). Доп. задание: сделать деструктор. вопрос: как? просто длину занулить или что? # include <iostream> using namespace std; class line { int len; public: line(int a); http://www.cyberforum.ru/cpp-beginners/thread770873.html
Перевод из 16 сс в 4 сс C++
Помогите пожалуйста написать программу на C++ по переводу из 16 сс в 4 с дробными числами, а то я не очень понимаю как это сделать, недавно начал изучать этот язык. Добавлено через 1 час 16 минут #include <iostream> #include <math.h> using namespace std; int main() {double Number, b, c; int a, d, i, j=0, k;
Попадание в Морском Бою C++
#include <iostream> #include <ctime> #include <clocale> #include <stdlib.h> #include <conio.h> #include <locale.h> using namespace std; enum direction{h,v}; class Player {
C++ Нужно прочитать со входного потока число и строку, как проигнорировать лишние символы? http://www.cyberforum.ru/cpp-beginners/thread770820.html
Всем привет! Со входного потока нужно прочитать число, а затем в новой строке string... Гугл мне сказал, что после того, как мы ввели число, в буфере остаётся символ '\n'. Пишу: #include <iostream> #include <string> ... int main () {
C++ Определение учетной записи, из-под которой был скопирован файл в сеть Добрый времени суток, коллеги! На сетевой диск сохраняется файл. В свойствах файла присутствует информация о разрешениях для групп пользователей, имеющих к нему доступ. Также в списке представлено имя учетной записи, из-под которой было осуществлено копирование. Пожалуйста, подскажите, как средствами c++ получить имя этой учетной записи? подробнее

Показать сообщение отдельно
HyPuK
4 / 4 / 1
Регистрация: 24.01.2013
Сообщений: 76

Вывести те слова, которые отличаются от последнего слова и удовлетворяют условию, что в слове нет повторяющихся букв - C++

24.01.2013, 18:39. Просмотров 983. Ответов 2
Метки (Все метки)

Короче я сделал так
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
void main()
{
int const N=25;
char line[80];
char line1[80];
char line2[80];
 
int r=0,j=0,k=0,t=0,L;
int l=0;
char wrd[80][80];
int length[80];
 
printf("enter a string \n");
gets(line);
puts(line);
L=strlen(line);
printf("number of digits=%d\n",L);
 
 
//Разбиваем строку на слова
for (int i=0;i<L;i++)
{
    while (isalnum(line[i]) )
    {
            wrd[j][k]=line[i];
            k++;i++;
            wrd[j][k]=0;
            length[j]=k;
    }
    r=j;
    j++;
    k=0;
}
 
for (j=0;j<r;j++)
{
    for (k=0;k<l;k++)
        {
        if (wrd[j][k]==wrd[r][k])
        {
            t++;  
        }
        if (l==t)   
        {
            
                printf("Ura \n"); 
            l=length[j];      // длина слова
            for (k=0;k<l;k++)
                {
                    if (wrd[j][k]==wrd[j][l])    //последняя буква == данной букве,
                        {
                        wrd[j][k]=wrd[j+1][k];   //тогда это слово убираем и вставляем следующее
                        j--; r--;  break;        //j снижаем, т.к поставили след.слово на +1 ближе
                        }
                }
            t=0;
        }
        
    }
 
}
printf("--------------\n"); 
for (j=0; j<r; j++)
    {
        l=length[j];
    for (k=0;k<l; k++) 
        {
        printf("%c",wrd[j][k]);
        }
     printf("\n"); 
    
    }
printf("--------------\n");
}
ввожу "one two three two one"
должен получить "two two" т.к первое = последнему, и в 3 слове есть повторяющиеся буквы, но!
получаю "one two three two"

Думаю что надо копать вот это:
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
for (j=0;j<r;j++)
{
    for (k=0;k<l;k++)
        {
        if (wrd[j][k]==wrd[r][k])
        {
            t++;  
        }
        if (l==t)   
        {
            
                printf("Ura \n"); 
            l=length[j];      // длина слова
            for (k=0;k<l;k++)
                {
                    if (wrd[j][k]==wrd[j][l])    //последняя буква == данной букве,
                        {
                        wrd[j][k]=wrd[j+1][k];   //тогда это слово убираем и вставляем следующее
                        j--; r--;  break;        //j снижаем, т.к поставили след.слово на +1 ближе
                        }
                }
            t=0;
        }
        
    }
 
}
Я думаю что проблема в сравнении массивов, но сам не могу найти. Можете помочь?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru