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

Вывести введенные слова группами - C++

Восстановить пароль Регистрация
 
karandashbest
2 / 2 / 0
Регистрация: 17.05.2013
Сообщений: 685
05.12.2013, 18:29     Вывести введенные слова группами #1
По одному ввести последовательность слов. Распечатать введенные слова группами, каждая из которых должна состоять из тех введенных слов, три первые буквы которых совпадают. помогите сделать, это консольное приложение

Добавлено через 11 минут
Вот код, но тут полная жопа
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
char s[5][7];
for ( int i =0; i < 5; i++ )
{   cout<<endl;
   printf ("Vvedenj cliv: %d \n", i );
   scanf ( "%s", s[i]);
   if(s[i][0]=='t'){
                    cout<<"Finish"<<endl;
                    break;
                    }
  }
  char s1[5][7];
  int prod=0; // флаг нового масива присвоэння
 
int brk=0;
  int temp[6];
  int tempP[30];
  int t=0,e; 
 
  for(int f=0;f<5;f++){ //перше слово звыряэмо з кожним 
                       // .. енне слово звыряэмо з кожним 
                         // тыльки не з тим самим
                           e=0;
               for(int as=0;as<3;as++){          
               if(s[f][as]=='r'){  
                             e++;
                       } 
                if(e==3) {
                          f++;
                         
                         break;
                         }      
                       } 
    if(e==3){
          
            
             break;
             }                     
        
         temp[brk]=222;  // кінець якого визначається значенням 222
  for(int a=0;a<5;a++){
      t=0;  
     
/////////////////////////////////////////////////////  
         for(int q=0;q<3;q++){
              if(s[f][q]==s[a][q]){  
                              t++;
                       }
                                   
                if(t==3){
                         t=0;
                 temp[brk]=a;
                 brk++;
                 temp[brk]=222;//підсовуєм кінець на один
                       } 
                       
          }
////////////////////////////////////////////////////        
       
         }
         for(int vuved=0;;vuved++){   // виводим індекс споріднених слів
                 if(temp[vuved]==222){
                                      break;
                                      }
                 cout<<temp[vuved];
                 }
         for( int vuveD=0; ;vuveD++){// переприсвоюєм ці слова у новий масив
               if(temp[vuveD]==222){
                                    break;
                                   }
         cout<<endl<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;                          
               int b =0;
               do{
                    s1[prod][b] =s[temp[vuveD]][b] ;  
                    s[temp[vuveD]][b]='r';
                        b++;  
                                    }while(b<7);
                          for(int vud=0;vud<5;vud++){
                
                 cout<<s[vud]<<"  "<<endl;
                 }             
     
                  for(int y=0;y<7;y++){
                  cout<<temp[y]<<"  ";
                  
                  } 
                  cout<<endl;     
         prod++; 
         temp[vuveD]=222; 
                } 
         
    brk=0;     //флаг тимчасового масиву з індексами споріднених слів
cout<<endl<<"==============================================================="<<endl;
 
       }
  cout<<endl<<endl;
 
          for(int vud=0;vud<5;vud++){
                
                 cout<<s1[vud]<<"  "<<endl;
                 } 
         for(int vud=0;vud<5;vud++){
                
                 cout<<s[vud]<<"  "<<endl;
                 } 
        
        
        getch();
    }
Добавлено через 1 минуту
вот я делаю два массива. в один закидаю слова а в другой вписываю их по группам, чтобы цикл не проходил по тем же словам первого массива я с той строки где заберу слово вписываю "rrrrrrrr ..." но эта программа не со всеми вариациями работает ... я уже четыре дня сижу (((((и не могу найти ошибку.
в этой что я делал можно ввадиты только слова где не более 7 букв. Я просто не знал как делать чтобы до конца массива именно искало.

Добавлено через 5 минут
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main(){
char s[5][200];
for ( int i =0; i < 5; i++ )
{   cout<<endl;
   printf ("Vvedenj cliv: %d \n", i );
   
   scanf ( "%s", s[i]);
   if(s[i][0]=='t'){
                    cout<<"Finish"<<endl;
                    break;
                    }
  }
  int prusvoe=0;
  
int brk=0;
  int temp[6];
  int tempP[30];
  
  int NOV=222,hu=0;
  int t=0;
   tempP[prusvoe]=222;
   int rt=0;
  for(int f=0;f<5;f++){ //перше слово звыряэмо з кожним 
   ///   NOV==222;                 // .. енне слово звыряэмо з кожним 
                         // тыльки не з тим самим
                   
        brk=0;
         temp[brk]=222;
         
    /*    
     for(int dg=rt;;dg++){
     if(tempP[dg]==222){
                       break;
                       }    
          NOV=tempP[dg];             
      if(f==NOV){ 
                  rt=NOV;           це закометив частинку
 
                  NOV==222;        яка відповідає за не проходження рядків які є у масиві темпП.
                 break;
                 
                 }
                 }
  if(f==NOV){     
                hu=NOV;
                 
                 break;
                 }
         */
  for(int a=0;a<5;a++){
                
      t=0;
     
    
/////////////////////////////////////////////////////  
         for(int q=0;q<3;q++){
           
               
      //   if(f!=a)   { //щоб не звіряло з тим самими словом в масиві
           
         
              if(s[f][q]==s[a][q]){  
                              t++;
                       }
                                   
                if(t==3){
                 temp[brk]=a;
                 brk++;
                 temp[brk]=222;
                       } 
                       
     //    }
   
          }
         
////////////////////////////////////////////////////        
       
         }
         for(int vuved=0;;vuved++){
                 if(temp[vuved]==222){
                                      break;
                                      }
                 cout<<temp[vuved];
                 }
                 
                 
                 
         for(int vuveD=0;;vuveD++){
                if(temp[vuveD]==222){
                                     break;
                                     }
                cout<<s[temp[vuveD]]<<endl;
                
                } 
              
              
              
                 int qwer=0;
         for( ; ;prusvoe++){
                 tempP[prusvoe]=222;
                 if(temp[qwer]==222){
                                       // prusvoe--;
                                        break;
                                        }
                 tempP[prusvoe]=temp[qwer];
                 temp[qwer]=222;
                 qwer++;
                 
                 } 
                 qwer=0;     
cout<<endl<<"==============================================================="<<endl;
 
       }
  cout<<endl<<endl;
 
for(int df=0;;df++){
        if(tempP[df]==222){
                          break;
                          }
        cout<<tempP[df];
        
        }
        
        
        
        
        getch();
    }
Вот еще так пробувал
еще вот пробовал так вот. все что хотел сделать - работает. Но не знаю как наложить условие чтобы не сверяли с номерами срок которые я поместил в массив int tempP [30];
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2013, 18:29     Вывести введенные слова группами
Посмотрите здесь:

Используя стек вывести числа введенные пользователем в обратном порядке элемент стека – число C++
C++ В строку через пробел вводятся слова. Отсортировать введенные слова по алфавиту. Результат вывести в виде столбца.
C++ как вывести на экран только что введенные числа?
Вывести все введенные строки. Отсортировать строки. Вывести самую длинную строку C++
switch (Программа должна переводить введенные цифры в слова) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
06.12.2013, 08:46     Вывести введенные слова группами #2
Это какой курс ? очень тяжелая задача
el_gato_de_Ch
35 / 35 / 1
Регистрация: 28.04.2013
Сообщений: 110
06.12.2013, 09:41     Вывести введенные слова группами #3
какие требования к быстродействию ? какой максимальный размер входных параметров ?? сколько слов ? длина ?

если набор будет состоять максимум из 30 слов. или около того, я бы сделал так
1. отсортировал
2. пройдясь 1 раз по сортированному массиву вывел бы группами
karandashbest
2 / 2 / 0
Регистрация: 17.05.2013
Сообщений: 685
06.12.2013, 11:24  [ТС]     Вывести введенные слова группами #4
Цитата Сообщение от el_gato_de_Ch Посмотреть сообщение
какие требования к быстродействию ? какой максимальный размер входных параметров ?? сколько слов ? длина ?

если набор будет состоять максимум из 30 слов. или около того, я бы сделал так
1. отсортировал
2. пройдясь 1 раз по сортированному массиву вывел бы группами
В задачи не написано, а можете сделать так как вам удобней ? просто очень надо

Добавлено через 50 минут
кто то поможет (((((

Добавлено через 8 минут
Цитата Сообщение от el_gato_de_Ch Посмотреть сообщение
какие требования к быстродействию ? какой максимальный размер входных параметров ?? сколько слов ? длина ?

если набор будет состоять максимум из 30 слов. или около того, я бы сделал так
1. отсортировал
2. пройдясь 1 раз по сортированному массиву вывел бы группами
ну как поможешь ?
el_gato_de_Ch
35 / 35 / 1
Регистрация: 28.04.2013
Сообщений: 110
06.12.2013, 11:42     Вывести введенные слова группами #5
karandashbest, сейчас не смогу, часика через 4 думаю, что смогу
karandashbest
2 / 2 / 0
Регистрация: 17.05.2013
Сообщений: 685
06.12.2013, 11:48  [ТС]     Вывести введенные слова группами #6
Цитата Сообщение от el_gato_de_Ch Посмотреть сообщение
karandashbest, сейчас не смогу, часика через 4 думаю, что смогу
окей подойдет, тогда через часика 4 задуй, прост очень надо . спасибо что откликнулись
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2013, 13:00     Вывести введенные слова группами
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
el_gato_de_Ch
35 / 35 / 1
Регистрация: 28.04.2013
Сообщений: 110
06.12.2013, 13:00     Вывести введенные слова группами #7
skype el_gato_de_cheshire напиши мне туда,
Yandex
Объявления
06.12.2013, 13:00     Вывести введенные слова группами
Ответ Создать тему
Опции темы

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