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

Что здесь не так со вторым пунктом?

20.06.2020, 03:47. Показов 292. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1. Напечатать самое длинное и самое короткое слово в этой строке
2. Преобразовать строку таким образом, чтобы в ней остались только слова, содержащие буквы и цифры, остальные слова удалить
3. Подсчитать количество слов в данной строке

Вот что есть:

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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
#include <cstdio>
#include <iostream>
using namespace std;
 
int main() 
{
    char Str[255];
    int Count = 1;
    int q = 0, n = 0, j = 0;
    int Max_Size, Min_Size;
    bool Check = false;
    bool End;
    cout << "Enter a string: ";
    gets_s(Str);
    for (int i = 0; Str[i] != '\0'; i++)
    {
        if (Str[i] == ' ') Count++;
    }
    cout << "Number of words: " << Count << endl;
    int* Index = new int[Count];
    int* Size = new int[Count];
    for (int i = 0; Str[i] != '\0'; i++)
    {
        if (Str[i] != ' ') q++;
        else 
        {
            Size[n] = q;
            Index[n] = i - Size[n];
            q = 0;
            n++;
        }
        if (Str[i + 1] == '\0')
        {
            Size[n] = q;
            Index[n] = i - Size[n] + 1;
            q = 0;
        }
    }
    Max_Size = Size[0];
    Min_Size = Size[0];
    for (int i = 0; i < Count; i++)
    {
        if (Size[i] > Max_Size)
        {
            Max_Size = Size[i];
        }
        else if (Size[i] < Min_Size)
        {
            Min_Size = Size[i];
        }
    }
    for (int i = 0; i < Count; i++)
    {
        if (Size[i] == Max_Size)
        {
            if (i == Count - 1)
            {
                cout << "The longest word: ";
                for (int j = Index[i]; Str[j] != '\0'; j++)
                {
                    cout << Str[j];
                }
                cout << endl;
            }
            else 
            {
                cout << "The longest word: ";
                for (int j = Index[i]; Str[j] != ' '; j++)
                {
                    cout << Str[j];
                }
                cout << endl;
            }
        }
        if (Size[i] == Min_Size)
        {
            if (i == Count - 1)
            {
                cout << "The shortest word: ";
                for (int j = Index[i]; Str[j] != '\0'; j++)
                {
                    cout << Str[j];
                }
                cout << endl;
            }
            else
            {
                cout << "The shortest word: ";
                for (int j = Index[i]; Str[j] != ' '; j++)
                {
                    cout << Str[j];
                }
                cout << endl;
            }
        }
    }
    n = 0;
    for (int i = 0; Str[i] != '\0'; i++)
    {
        if (Str[i] >= 97 && Str[i] <= 122)
        {
            int Help = 0;
            while (Str[i] != ' ')
            {
                if (Str[i] >= 48 && Str[i] <= 57) Help++;
                if (Help) Check = true;
                i++;
            }
            if (Check)
            {
                for (j; Str[Index[n]] != ' '; j++, Index[n]++)
                {
                    Str[j] = Str[Index[n]];
                    cout << Str[j];
                }
                n++;
                Str[j] = ' ';
            }
            else n++;
        }
        else
        {
            i++;
            if (n == Count - 1)
            {
                int Help = 0;
                while (Str[i] != '\0')
                {
                    if (Str[i] >= 48 && Str[i] <= 57) Help++;
                    if (Help) Check = true;
                    i++;
                }
                if (Check)
                {
                    for (j; Str[Index[n]] != '\0'; j++, Index[n]++)
                    {
                        Str[j] = Str[Index[n]];
                        cout << Str[j];
                    }
                    Str[j + 1] = '\0';
                }
                Str[j] = '\0';
            }
        }
    }
    delete Size;
    delete Index;
    return 0;
}
 
Не работает часть кода, связанная со вторым пунктом,  т.е. вот эта:
 
n = 0;
    for (int i = 0; Str[i] != '\0'; i++)
    {
        if (Str[i] >= 97 && Str[i] <= 122)
        {
            int Help = 0;
            while (Str[i] != ' ')
            {
                if (Str[i] >= 48 && Str[i] <= 57) Help++;
                if (Help) Check = true;
                i++;
            }
            if (Check)
            {
                for (j; Str[Index[n]] != ' '; j++, Index[n]++)
                {
                    Str[j] = Str[Index[n]];
                    cout << Str[j];
                }
                n++;
                Str[j] = ' ';
            }
            else n++;
        }
        else
        {
            i++;
            if (n == Count - 1)
            {
                int Help = 0;
                while (Str[i] != '\0')
                {
                    if (Str[i] >= 48 && Str[i] <= 57) Help++;
                    if (Help) Check = true;
                    i++;
                }
                if (Check)
                {
                    for (j; Str[Index[n]] != '\0'; j++, Index[n]++)
                    {
                        Str[j] = Str[Index[n]];
                        cout << Str[j];
                    }
                    Str[j + 1] = '\0';
                }
                Str[j] = '\0';
            }
        }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.06.2020, 03:47
Ответы с готовыми решениями:

Что здесь не так?
// xc.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; //...

Что здесь не так ?!
Строки 1. Задача «Делаем срезы» Условие Дана строка. Сначала выведите третий символ этой...

Что здесь не так?
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace...

Что здесь не так?
Только начал изучать С++. Решил написать программу которая гласит что число больше или меньше ста и...

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

Что здесь не так
Я хотел сделать программу для сложения двух чисел. после ввода второго слагаемого окно пропадает, я...

Что не так здесь?
$query=&quot;INSERT INTO mess (message,otpravitel) VALUES ('&lt;img src='$source'&gt;','$nik')&quot;; вот код где...

Что здесь не так?
&lt;html&gt; &lt;title&gt;Test&lt;/title&gt; &lt;header&gt;&lt;h1&gt;&lt;center&gt;Test&lt;/center&gt;&lt;/h1&gt;&lt;/header&gt; &lt;body&gt; ...

Что здесь не так?
using System; using System.Collections.Generic; using System.Text; namespace...

Что здесь не так?
Добрый день! Задание: считать в массив из двух файлов числа, а потом вывести в консоль результат...

а здесь что не так?
текст и выпадающее меню с цветом &lt;html&gt; &lt;head&gt; &lt;title&gt;JavaScript&lt;/title&gt; &lt;script...


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

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