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

о функциях (элементарно, но я же нуб)

13.06.2013, 03:09. Показов 844. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу в компилятор следующее:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cstdlib>
#include <iostream>
 
int Sum (int a, int b)
{
    std::cout << "Type a";
    std::cin >> a;
    std::cout << "Type b";
    std::cin>> b;
    int sum = a + b;
    std::cout<< "Sum is " << sum;
}    
 
int main()
{
    Sum (a, b);
    system("PAUSE");
}

вроде понятно, вводим a и b, а прога выдает нам сумму. Но, видимо, руки при появлении на свет приклеились не к тому месту, соу, нифига не работает. Помогите пожалуйста
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.06.2013, 03:09
Ответы с готовыми решениями:

Элементарно
Всем привет! Я новичек в PHP. Ввожу вроде простой PHP код: &lt;?php echo &quot;Enter your name:\n&quot;; $name=trim(fgets(STDIN)); ...

Элементарно просто
Здравствуйте, гении нашего времени. У меня будет достаточно глупый вопрос &quot;В программе описан одномерный целочисленный массив А с...

Элементарно, код !
Доброго времени суток всем, кто проявил интерес к данной теме. &quot;Я только начал учить Java, она такая интересная, но у меня что-то не...

10
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
13.06.2013, 03:15
Цитата Сообщение от Dimsssss Посмотреть сообщение
Пишу в компилятор

Не по теме:

:D ...



Добавлено через 1 минуту
Цитата Сообщение от Dimsssss Посмотреть сообщение
Sum (a, b);
а и б не объявлены.
И зачем их копии вообще передавать в функцию, если в функции же их и вводишь.
1
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 20
13.06.2013, 03:17  [ТС]
мне их удалить? оставить пустые скобки?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
13.06.2013, 03:21
Цитата Сообщение от Dimsssss Посмотреть сообщение
мне их удалить?
Я не могу этого знать. Это же твоя программа. Можешь не удалять. Но объявить обязан. Можешь не удалять, объявить и вводить в мейне, передавать в функцию. Можешь удалить, объявить и вводить внутри функции. Как тебе больше нравится, так и делай.
1
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 20
13.06.2013, 03:23  [ТС]
так разве они не объявляются при создании функции?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
13.06.2013, 03:25
C++
1
2
3
4
5
int main()
{
Sum (a, b);
system("PAUSE");
}
Вызов Sum. передача ей двух переменных, а и б. Где в этом коде объявлены а и б?
1
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 20
13.06.2013, 03:26  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cstdlib>
#include <iostream>
 
int Sum (int a, int b)
{
    std::cout << "Type a\n";
    std::cin >> a;
    std::cout << "Type b\n";
    std::cin>> b;
    int sum = a + b;
    std::cout<< "Sum is " << sum;
}    
 
int main()
{
    Sum (0, 0);
    system("PAUSE");
}
ну вот так работает, даже правильно. Но значения 0 и 0 изначальные в сумме - это же мусор. Можно ли без него?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
13.06.2013, 03:30
Цитата Сообщение от Dimsssss Посмотреть сообщение
Но значения 0 и 0 изначальные в сумме - это же мусор.
Да. Выше я написал варианты - как можно. Даже по логике функция Sum должна сумму считать, а не данные с консоли брать. Оставь в ней только подсчет суммы и передавай ей на вход веденные значения из main. Желательно и выводить значение в мейне, после того, как Sum его вернула. А у тебя она ничего хорошего не возвращает. Тогда хоть выглядеть будет адекватно. А сейчас - бестолковая функция тупо ради наличия.
1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
13.06.2013, 03:41
Логичней ввод-вывод поместить в тело функции main, а дальше в sum лишь производить расчеты и возвращать значение. У вас ведь идентификатор типа возвращаемого значения функции указан как int, а не void, значит и вернуть должно int, что вполне логично.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int sum(int a, int b)
{
    return a + b; // возвращаем сумму
}
 
 
int main()
{
    int a, b;
    std::cout << "Type a: ";
    std::cin >> a;
    std::cout << "Type b: ";
    std::cin >> b;
    int s = sum(a, b); // равно результату, возвращаемому функцией
    std::cout << "Sum is " << s;
}
1
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 20
13.06.2013, 03:48  [ТС]
большое спасибо, форумчане. Я несколько улучшил свою старую прогу и за это обязан вам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cstdlib>
#include <iostream>
 
int AreaCount (int width, int height)
{
    std::cout << "Type width\n";
    std::cin >> width;
    std::cout << "Type height\n";
    std::cin >> height;
    int area;
    return width * height;
}
 
int main()
{
    int width;
    int height;
    int area = AreaCount (width, height);
    std::cout << "Area is " << area << "\n";
    system("PAUSE");
 
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
13.06.2013, 03:54
Dimsssss, непонятно зачем идет инициализация внутри тела функции AreaCount?
Ей должны передаваться уже готовые для подсчета аргументы. Ввод-вывод в функции, отличной от main это моветон.

Добавлено через 15 секунд
Оформляйте все в теги CPP
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.06.2013, 03:54
Помогаю со студенческими работами здесь

Рекурсивная функция элементарно
Помогите пожалуйста сделать след. выражение через рекурсивную функцию: Y=(X^n/2)^2 -&gt; Икс в степени n/2 в квадрате. После всего...

Элементарно сохранить в Json
Здравствуйте, Только начал разбираться с Mongo shell, использую robomongo, создал local db, в ней две коллекции с данными. Как Все это...

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

Элементарно,банально но очень нужно
Есть ли в C# такие listbox'ы(см. прикрепленые рисунки) ?и где их взять?

На вид элементарно, но сложно...(Дерево и contextMenuStrip)
Так вот, При нажатии правой кнопкой мыщи на Node дерева выскакивает контекстное меню, но Node который должен быть по идее выделен, не...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru