Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для Alek70694
6 / 6 / 2
Регистрация: 27.10.2012
Сообщений: 264

Возврат нескольких значений структурной переменной

06.02.2016, 23:34. Показов 1876. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как добиться возврата значений типа sterling? Без возврата значения всё идеально, с возвратом конкретно со структурными переменными
в данном случае не совсем понимаю как работать. В самой функции понятно, что неправильно написан код, пытался добиться нужного
результата экспериментальным путём.
Собственно, задание такое: Программа должна получать от пользователя значения двух денежных сумм, выраженных в фунтах,
шиллингах и пенсах, складывать эти значения и выводить результат на экран в том же формате. Необходимо разработать три
функции. Первая из них должна получать от пользователя число фунтов, шиллингов и пенсов и возвращать соответствующее
значение типа sterling.
С возвратом(код нерабочий):
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
#include <iostream>
using namespace std;
struct sterling
{
int funt;
int shill;
int pens;
int funts; //сумма фунтов
int shills; //сумма шиллингов
int penss; //сумма пенсов
};
void func1(sterling, sterling);
int main()
{
setlocale(LC_ALL,"RUS");
sterling f1, f2;
cout << "Введите первую сумму фунтов, шиллингов и пенсов: ";
cin >> f1.funt >> f1.shill >> f1.pens;
cout << "Введите вторую сумму фунтов, шиллингов и пенсов: ";
cin >> f2.funt >> f2.shill >> f2.pens;
func1 (f1, f2);
cout << "Сложение двух сумм дало значения: " << f1.funts << " фунтов, " << f1.shills << " шиллингов и " << f1.penss << " пенсов." << endl;  
system("pause");
return 0;
}
void func1(sterling& fc1, sterling& fc2)
{
fc1.penss = (fc1.pens + fc2.pens)%12;
fc1.shills = ((fc1.shill + fc2.shill) + ((fc1.pens + fc2.pens) / 12)) % 20;
fc1.funts = (fc1.funt + fc2.funt) + ((fc1.shill + fc2.shill) + ((fc1.pens + fc2.pens) / 12))/20);
}
Без возврата(код рабочий):
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
#include <iostream>
using namespace std;
int funts;
int shills;
int penss;
struct sterling
{
int funt;
int shill;
int pens;
};
void func1(sterling, sterling);
int main()
{
setlocale(LC_ALL,"RUS");
sterling f1, f2;
cout << "Введите первую сумму фунтов, шиллингов и пенсов: ";
cin >> f1.funt >> f1.shill >> f1.pens;
cout << "Введите вторую сумму фунтов, шиллингов и пенсов: ";
cin >> f2.funt >> f2.shill >> f2.pens;
func1 (f1, f2);
system("pause");
return 0;
}
void func1(sterling fc1, sterling fc2)
{
penss = (fc1.pens + fc2.pens)%12;
shills = ((fc1.shill + fc2.shill) + ((fc1.pens + fc2.pens) / 12)) % 20;
funts = (fc1.funt + fc2.funt) + (((fc1.shill + fc2.shill) + ((fc1.pens + fc2.pens) / 12))/20);
cout << "Сложение двух сумм дало значения: " << funts << " фунтов, " << shills << " шиллингов и " << penss << " пенсов." << endl;  
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.02.2016, 23:34
Ответы с готовыми решениями:

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

Возврат нескольких значений из функции
Здравствуйте, Подскажите пожалуйста, как можно передать из функции 2 результата, например, в магазине есть купюры номиналом 2 и 5,...

Доступ к структурной переменной
Эм, возникло небольшое недопонимание происходящего, а именно ошибка при компиляции программы следующего вида: #include...

3
 Аватар для _Valera_
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
06.02.2016, 23:47
Лучший ответ Сообщение было отмечено Alek70694 как решение

Решение

Цитата Сообщение от Alek70694 Посмотреть сообщение
С возвратом(код нерабочий):
это ты так ссылку назвал?

Добавлено через 42 секунды
Цитата Сообщение от Alek70694 Посмотреть сообщение
C++
1
void func1(sterling, sterling);
C++
1
void func1(sterling &, sterling &);
так тогда
1
 Аватар для Alek70694
6 / 6 / 2
Регистрация: 27.10.2012
Сообщений: 264
06.02.2016, 23:53  [ТС]
Цитата Сообщение от _Valera_ Посмотреть сообщение
это ты так ссылку назвал?
Да, возврат значения с помощью ссылки.
Цитата Сообщение от _Valera_ Посмотреть сообщение
1
void func1(sterling &, sterling &);
так тогда
Стыдно, очень невнимательный. Не знаю, как я буду объемные программы писать.
0
 Аватар для _Valera_
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
06.02.2016, 23:59
Цитата Сообщение от Alek70694 Посмотреть сообщение
Не знаю, как я буду объемные программы писать.
как я, строчку написал - ищи 2 часа баг...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.02.2016, 23:59
Помогаю со студенческими работами здесь

Ошибка структурной переменной
struct date { int day; int month; int year; }; void indate(date); void outdate(date); int main()

Какое поле у структурной переменной содержащей указатель?
Добрый день! Только учу С++. И, вот , возник вопрос. Обычная структура, например. struct sct { int d; int f; } sct s; ...

Быстрый способ создания строковой переменной из значений нескольких строковых переменных
К примеру, в javascript'e из трёх исходных строковых переменных создать одну конкатенированную рекомендуется следующим способом: надо...

Как сослаться на член структуры при вводе структурной переменной?
Данный код не работает. #include &lt;iostream&gt; #include&lt;cstdlib&gt; #include&lt;string&gt; using namespace std; struct color { int...

Указатели. Удаление переменной и возврат памяти
Одинаковые ли (1) и (2) программа ? Если нет, то почему ? // 1) double b = 3.2; double *c = &amp;b; cout&lt;&lt;&quot;С =...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru