Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 1
Регистрация: 30.05.2017
Сообщений: 63
1

Нахождение самой короткой строки

08.10.2017, 13:14. Показов 1596. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно вводить строки, пока не будет введено максимальное количество строк, либо 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
#include<stdio.h>
#include<iostream>
#include<string.h>           
#include<ctype.h>            
#include<conio.h>
#define max_str 5                   
#define max_symb 11              
using namespace std;
int main()
{ int m,i;
  int kol1=0;      //kol vseh strok
  int kol2=0;      //kol pravilnih strok
  int kol3=0;      //kol malenkih strok
  int o=0;
  int k=0;
  char pr[5][11]; 
  char m_strok[max_str][max_symb];     
  char stroka[300];
  char temp[11];
  cout<<"Vvedite maximalnoe kol-vo strok: ";
  cin>>m;
  if(m<1) cout<<endl<<"*****Nevernie razmernosti!*****";
  else { 
      char **a=new char *[m];
      for(i=0;i<m;i++)
         *(a+i)=new char[max_symb];
      cout<<endl<<"Vvedite stroki: "<<endl;
      while((o<max_str)&&(kol1<m )) { 
           fflush(stdin);
           gets(stroka);
           stroka[max_symb-1]='\0';                 
           strcpy(*(a+kol1),stroka);
           kol1++;
           for(i=0;i<strlen(stroka);i++) { 
              kol2=0;
              if(islower(stroka[i])) {
                kol2++;  
                break;
                                     }
                                         }
           if(kol2!=0) { 
             strcpy(pr[o],stroka);            
             o++;
                       }
                                    }
           if(o==0) 
             cout<<endl<<"****Net strok s malenkimi bukvami!****"<<endl;
           else { 
               cout<<endl<<"\t\t********************************************************";
               cout<<endl<<"***Stroki s malenkimi bukvami***"<<endl;
               for(i=0;i<o;i++) 
                  puts(pr[i]);
               metka:
                     for(i=0;i<o-1;i++) 
                        if((strcmp(pr[i],pr[i+1]))<0) {
                          strcpy(temp,pr[i]);
                          strcpy(pr[i],pr[i+1]);
                          strcpy(pr[i+1],temp);
                          goto metka;
                                                      }
               cout<<endl<<"***Stroki s malenkimi bukvami posle sortirovki***"<<endl;
               for(i=0;i<o;i++) 
                  puts(pr[i]);
                }
           cout<<endl<<"\t\t********************************************************";
           cout<<endl<<"***Vse vvedennie stroki***"<<endl;
           for(i=0;i<kol1;i++)  
              puts(*(a+i)); 
           m:
             for(i=0;i<kol1-1;i++) 
                if((strcmp(*(a+i),*(a+i+1)))<0) {
                  strcpy(temp,*(a+i));
                  strcpy(*(a+i),*(a+i+1));
                  strcpy(*(a+i+1),temp);
                  goto m;
                                                }
           cout<<endl<<"***Vse stroki posle sortirovki***"<<endl;
           for(i=0;i<kol1;i++) 
              puts(*(a+i));
           for(i=0;i<kol1;i++)
           if(strlen(*(a+i+1))<strlen(*(a+i))) {
              k=strlen(*(a+i+1));
            }
           for(i=0;i<kol1;i++)
              if(strlen(*(a+i))==k)
                kol3++;
           char **b=new char *[kol3];
           for(i=0;i<kol3;i++)
              *(b+i)=new char [max_symb];
           for(i=0;i<kol3;i++)
              if(strlen(*(a+i))==k)
                strcpy(*(b+i),*(a+i));
           cout<<endl<<"***Samaya malenkaya stroka(i)***"<<endl;
           for(i=0;i<kol3;i++)
              puts(*(b+i));
           delete [] b;
           delete [] a;
       }
getch();
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2017, 13:14
Ответы с готовыми решениями:

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

Создать динамический массив строк, заполнить его и потом добавить строку после самой короткой строки
нужно создать динамический массив строк, заполнить его и потом добавить строку после самой короткой...

Создать текстовый файл in.txt, куда записать несколько строк. Найти номер самой короткой строки
1.Создать текстовый файл in.txt, куда записать несколько строк. Найти номер самой короткой строки. ...

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

0
08.10.2017, 13:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2017, 13:14
Помогаю со студенческими работами здесь

Нахождение номера самой длинной строки в матрице
люди кто может помогите вроде бы элементарная задача а доконца разобраться не могу.... Дана...

[C] Найти самую длинную строку и поместить ее после самой короткой
Найти самую длинную строку и поместить ее после самой короткой.

Напишите программу для нахождения самой короткой стороны треугольника с вершина-ми A (X1, Y1), B (X2, Y2), C (X3, Y3)
#include&lt;iostream&gt; #include&lt;cmath&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; using namespace std;...

Нахождение самой длинной неубывающей последовательности массива
Нужно решить задачу: Дан массив из N вещественных чисел. Найти самую длинную неубывающую...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru