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

Неправильная работа программы после разбития ее на функции

07.11.2016, 18:59. Показов 803. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребята, кому не сложно, помогите найти ошибку. При выборе первого кейса меню все хорошо ввожу строку как положено, перехожу ко второму кейсу (или даже к третьему, неважно) и мне снова предлагают ввести строку. И так до бесконечности..
Что делать?

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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <Windows.h>
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
 
using namespace std;
 
int index = 0;
string str;
 
// Ввод данных
int input()
{
    do
    {
        cout << "Введите строку: ";
        getline(cin, str);
        if (str.size() == 0)
        {
            system("cls");
            cout << "Ошибка! Введите хотя бы один символ." << endl;
        }
    } while (str.size() == 0);
    int size = str.size();
    system("cls");
    cout << "Введенная строка: ";
    cout << """;
    for (int i = 0; i < size; i++)
    {
        cout << str.at(i);
    }
    cout << """ << endl;
    return size;
}
 
// Алгоритм
int work()
{
    int size = input();
    int a = 0;
    int b = 0;
    for (int i = 0; i < size; i++)
    {
        if (str.at(i) != '\0' && str.at(i) != ' ')
        {
            a++;
        }
        else if (str.at(i) == '\0' || str.at(i) == ' ')
        {
            a = 0;
        }
 
        if (a > b)
        {
            index = i - a + 1;
            b = a;
        }
    }
    return b;
}
 
// Вывод данных
void output()
{
    int b = work();
    cout << "Самое длинное слово в строке: ";
    cout << """;
    for (int i = index; i < b + index; i = i + 1)
    {
        cout << str.at(i);
    }
    cout << """ << endl;
}
 
// Функция main
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
    int menu = 0;
    do
    {
        cout << "Меню." << endl;
        cout << "1.Ввести строку." << endl;
        cout << "2.Найти самое длинное слово." << endl;
        cout << "3.Вывод на экран." << endl;
        cout << "-----------------------------" << endl;
        cout << "0.Выход." << endl;
        (cin >> menu).get();
        switch (menu)
        {
        case 1:
            input();
            break;
        case 2:
            work();
            break;
        case 3:
            output();
            break;
        case 0:
 
            break;
        default:
 
            break;
        }
    } while (menu != 0);
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.11.2016, 18:59
Ответы с готовыми решениями:

Неправильная работа программы после создания Artifacts
Программа имеет интерфейс на JavaFX через который задаем ориентир. Есть один дочерний поток, в...

Неправильная работа программы
Программа должна выполнять деление одного числа на другое, и при делении на 0, вызывать окно с...

Неправильная работа программы
Написал код. Компилируется. Проблема в своенравном поведении программы. Нужная логика Push...

Неправильная работа программы
была программа, которая считывает английский текст из файла и выводит на экран слова, начинающиеся...

2
 Аватар для Виктор27
13 / 13 / 6
Регистрация: 21.11.2013
Сообщений: 365
08.11.2016, 05:44 2
BelyyMishka,
Как должна работать программа?
0
0 / 0 / 0
Регистрация: 07.11.2016
Сообщений: 7
08.11.2016, 06:11  [ТС] 3
Виктор27, программа должна в введенной строке находить самое длинное слово. Пока я не разбил программу на функции она работала.
0
08.11.2016, 06:11
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.11.2016, 06:11
Помогаю со студенческими работами здесь

Неправильная работа программы
Программа вычисляет значение выражение, во вложении скрин выражения data segment y db 0 data...

неправильная работа программы
Извините народ если отвлекаю но не кто не сможет мне помочь... дело в том что у меня при...

Бесконечный цикл и неправильная работа программы
#include &quot;pch.h&quot; #include &lt;string&gt; #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;conio.h&gt; ...

Неправильная работа программы по учебнику Дейтелов
Всем доброго времени суток. Изучаю книгу Дейтелов &quot;Как программировать на С/С++&quot; , попутно...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Что такое внедрение зависимостей и для чего оно применяется
bytestream 27.01.2025
В современной разработке программного обеспечения одной из ключевых проблем является управление зависимостями между различными компонентами системы. Внедрение зависимостей (Dependency Injection, DI). . .
Как установить cellpadding и cellspacing в CSS
bytestream 27.01.2025
При создании веб-страниц с табличными данными разработчики часто сталкиваются с необходимостью правильного оформления внутренних и внешних отступов в таблицах. В традиционной разметке HTML для этих. . .
Чем отличаются public, protected, package-private и private в Java
bytestream 27.01.2025
В языке программирования Java механизм модификаторов доступа играет ключевую роль в реализации одного из фундаментальных принципов объектно-ориентированного программирования - инкапсуляции. . . .
Зачем нужно explicit в C++. Преобразование типов
bytestream 27.01.2025
В мире программирования на C++ управление преобразованием типов данных играет crucial роль в создании надежного и безопасного кода. Язык C++ предоставляет множество механизмов для контроля над. . .
Как создать удалённую (remote) ветку в Git
bytestream 27.01.2025
Система контроля версий Git стала неотъемлемой частью современной разработки программного обеспечения, предоставляя разработчикам мощные инструменты для управления кодовой базой. Одним из ключевых. . .
Как создать утечку памяти в Java
bytestream 27.01.2025
Утечка памяти в Java представляет собой ситуацию, когда программа неэффективно использует доступную память, удерживая ссылки на объекты, которые больше не нужны для работы приложения. Несмотря на. . .
КуМир: как решать задачи на числа
bytestream 27.01.2025
КуМир (Комплект Учебных МИРов) представляет собой уникальную образовательную среду программирования, разработанную специально для обучения основам алгоритмизации и программирования. Эта система. . .
Исполнитель Черепаха в КуМир: как решать задачи
bytestream 27.01.2025
Исполнитель Черепаха в системе КуМир представляет собой мощный образовательный инструмент, который помогает освоить основы программирования через визуальное представление результатов выполнения. . .
КуМир: как решать задачи на массивы
bytestream 27.01.2025
Массивы представляют собой важнейшую структуру данных в программировании, и система КуМир предоставляет удобные инструменты для работы с ними. В контексте КуМир массив можно представить как. . .
[golang] 26. Remove Duplicates from Sorted Array
alhaos 27.01.2025
Необходимо удалить дубликаты из предоставленного целочисленного отсортированного по взрастанию слайса, нужно изменить значения в слайсе и вернуть количество элементов. / / . . .
КуМир, исполнитель Робот. Решение задач
bytestream 27.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения программированию, которая была создана в Отделении информатики Российской Академии наук. Эта система разработана. . .
Асинхронное программировани­е и async/await в JavaScript
bytestream 27.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в современной разработке на JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru