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

Вернуть значение функции, не используя cout в ней

16.11.2020, 09:18. Показов 1278. Ответов 5

Author24 — интернет-сервис помощи студентам
в 33-59 строках находится функция, значение которой мне необходимо вернуть, у меня не получается это сделать без использования cout в самой функции. Как это сделать, помогите пж.



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
/*
 Строка состоит из слов, разделенных одним или несколькими
 пробелами. Среди слов, состоящих только из цифр, найти слово,
 содержащее максимальное число нулей. Если таких слов больше
 одного, найти предпоследнее из них.
*/
 
#include <iostream>
using namespace std;
  
// Считаем нули в одном слове.
 int count_char_in_word(char*& s, char c) {
     while(*s == ' ') // доходим до первого слова, если строка начинается с пробела
         s++;
     int count (0);
     while(*s != ' ' && *s != '\n' && *s) {
           if(!isdigit(*s)) { // если элемент не является числом, то...
               while(*s != ' ' && *s != '\n' && *s)
                   s++; // ...доходим до конца этого слова или конца строки и возвращаем 0
               return 0;
           }
            if(*s++ == c) // если элемент строки равен 0, то переменная count увеличиватся на 1
                count++;
     }
     while(*s == ' ')
         s++;
     return count;
 }
  
// Печатаем предопоследнее слово, если
// есть одинаковые результаты, или
// просто печатаем результат.
 void print_res_word_in_str(char* s, char c, int count_equal) {
     
     if(count_equal == 0) {
          cout << "\nОшибка. Слово только из цифр, содержащее нули не найдено!\n";
          return;
     }
     
     cout << "\nСлово, состоящее только из цифр и содержащее максимальное количество нулей: ";
     char* last1 = NULL;
     char* last2 = NULL;
     while(*s) {
         char* t = s;
         int count = count_char_in_word(s, c);
         if (count == count_equal) {
            swap(last1, last2);  // Функция swap() обменивает значения своих аргументов.
            last2 = t;
         }
     }
     
     if(last1)
         last2 = last1;
     
     s = last2;
     do {
         cout << *s++;
     } while (*s != ' ' && *s != '\n' && *s);
 }
  
 int main() {
     
     setlocale(LC_ALL, "rus"); // корректное отображение Кириллицы
     
     const int MAX(300);
     char* string = new char[MAX];
  
     cout << "Введите строку (максимум 300 символов): ";
     cin.getline(string, MAX, '\n');
     
     int count, countmax (0);
     char* s = string;
     
     // Поиск макс кол-ва нулей для слова.
     
     while(*s) {  // пока s не равно нулю считаем количество нулей в слове из цифр
         count = count_char_in_word(s, '0');
         if(count > countmax) {
             countmax = count; // пременная countmax принимает значение переменной count, которая хранит максимальное количество нулей в слове
         }
     }
    
     print_res_word_in_str(string, '0', countmax);
     
     cout << "\n\n";
     delete[] string;
     system("pause");
     return 0;
 }
 
// Функция isdigit проверяет, является ли аргумент десятичной цифрой
// Возвращаемое значение:
// Значение, отличное от нуля (т.е. истинно), если аргумент функции — это десятичная цифра
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.11.2020, 09:18
Ответы с готовыми решениями:

Вернуть значение из функции, используя shared_ptr
Здравствуйте, Начал работу с умными указателями и столкнулся с проблемой. У меня есть класс...

Как правильно вернуть из функции сформированную в ней строку?
Как правильно вернуть из функции сформированную в ней строку? Возвращать массив это- возвращать...

Вернуть значение объекта, используя массив цепочки свойств.
Здравствуйте. Объясните пожалуйста как это работает. Я несколько задач уже по рекурсии решил и...

Как в функции вернуть значение, а потом продолжить работу этой функции?
Есть функция main, которая возвращает определенное значение. Это значение должно вернутся в течении...

5
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
16.11.2020, 09:22 2
Ну так "напечатай" результат функции в строковый поток вместо cout и потом верни его str.
0
3 / 2 / 1
Регистрация: 08.10.2020
Сообщений: 19
16.11.2020, 09:53  [ТС] 3
Не совсем понимаю как это делать, можете показать. И еще в этой программе мне можно использовать только тип char
0
фрилансер
 Аватар для Алексей1153
5862 / 5401 / 1106
Регистрация: 11.10.2019
Сообщений: 14,432
16.11.2020, 10:10 4
Цитата Сообщение от KirillMat Посмотреть сообщение
необходимо вернуть, у меня не получается это сделать без использования cout в самой функции.
возврат значения из функции вообще никак не связан с std::cout
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,884
Записей в блоге: 1
16.11.2020, 10:11 5
Лучший ответ Сообщение было отмечено KirillMat как решение

Решение

Цитата Сообщение от KirillMat Посмотреть сообщение
Не совсем понимаю как это делать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
char * print_res_word_in_str(char* s, char c, int count_equal)
{
     // замени 56 - 58 строчки
 
     int count = 0;
     do {
         ++count;
     } while (*s != ' ' && *s != '\n' && *s);
 
     char * ret = new char[count + 1]{0};
     for (int i = 0; i < count; ++i)
         ret[i] = *s++;
 
     ret[count] = 0;
 
    return ret;
}
могут быть ошибки
1
3 / 2 / 1
Регистрация: 08.10.2020
Сообщений: 19
16.11.2020, 20:36  [ТС] 6
я немного добавил к вашему коду и все заработало, большое спасибо за идею
0
16.11.2020, 20:36
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.11.2020, 20:36
Помогаю со студенческими работами здесь

Как вернуть курсор в функции оракл и вызвать ее в C#, используя интерфейс OLEDB
есть функция оракл, думаю она правильная: create or replace package test_pkg1 is type...

Вернуть значение из функции
Здравствуйте, имеется такой код. function check_country(ip){ $.ajax({ type: 'POST', ...

Вернуть значение из функции
Приветсвую программисты! Такая проблема, надо возвратить m из функции, а оно возвращает не то что...

Как вернуть значение функции
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; struct list{ float data; list *next; }; void...

Функции, как вернуть значение?
Нужно вернуть значение sum и min и вывести их main.cpp Но компилятор пишет, что: &quot;Ошибка :...

Как вернуть значение из функции?
public Element GetDictElems(int dict_key) { //OracleParameter qryParam = new...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO / / https:/ / leetcode. com/ studyplan/ top-interview-150/ package topInterview . . .
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации. Исполнитель Чертежник работает на координатной плоскости, где может. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru