1 / 1 / 0
Регистрация: 27.08.2016
Сообщений: 6
1

Почему функция выводит текст в начало строки?

12.09.2017, 21:15. Показов 1142. Ответов 4

Author24 — интернет-сервис помощи студентам
Только начал изучение функций. Вопрос, почему функция mult выводит свой текст именно в начало строки? Почему не в конец или не на место где я пересылаю функции два значения...
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
float mult(float x, float y);
int main(int argc, const char * argv[]) {
cout << 2 << "*" << 2 << "=" << mult(2, 2);}
 
float mult(float x, float y) {
    float result;
    result = x * y;
    cout << "Подсчет: ";
    return result;
}
Итог выглядит так: "Подсчет: 2*2=4"
Зачем в начало строки? Я не просил.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.09.2017, 21:15
Ответы с готовыми решениями:

Почему функция fscanf выводит текст слитно?
Дали задачу: Проведен эксперимент и результаты измерений занесены в таблицу в таблице, которую...

Функция: поместить все цифры в начало строки, а буквы в конец строки
Дана строка, состоящая из букв и цифр. Написать функцию, которая помещает все цифры в начало...

Почему не выводит текст исключения?
using System; namespace Example { class Program { public static int BadFactorial(int k)...

Почему Canvas не выводит текст?
В коде, приведённом ниже вроде всё правильно, но не пойму, почему не выводится текст!...

4
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
12.09.2017, 21:30 2
Цитата Сообщение от igorbem Посмотреть сообщение
Вопрос, почему функция mult выводит свой текст именно в начало строки? Почему не в конец или не на место где я пересылаю функции два значения...
Порядок действий здесь не определён:
Цитата Сообщение от igorbem Посмотреть сообщение
C++
1
cout << 2 << "*" << 2 << "=" << mult(2, 2);}
Добавлено через 1 минуту
C++
1
2
cout << 2 << "*" << 2 << "=";
cout << mult(2, 2);}
1
1 / 1 / 0
Регистрация: 27.08.2016
Сообщений: 6
12.09.2017, 22:11  [ТС] 3
Ну смысл вопроса:
C++
1
2
cout << "PRIVET" << name; 
cout << "PRIVET" << mult(2,2);
В первом случае, name встанет туда куда надо. Во втором, встанет на место mult(2,2) и + вначале строки.
Как он вообще определяет что надо именно в начало строки поставить. По-моему логично было бы ставить туда, где я её "инициализировал".
0
18965 / 9911 / 2422
Регистрация: 30.01.2014
Сообщений: 17,401
12.09.2017, 22:22 4
Лучший ответ Сообщение было отмечено igorbem как решение

Решение

igorbem, Значит, говорю совершенно серьезно. Ты можешь сейчас отправиться читать эту статью: http://ru.cppreference.com/w/c... eval_order и постараться понять о чем там пишут, что скорее всего не удастся, по крайней мере в нужной степени. Поэтому предлагаю пока запомнить простое правило: никогда не смешивать логику и представление. Иными словами, если функция что-то считает, она должна считать. Выводить одновременно, например, на экран она не должна. Пусть выводом займется вызывающая сторона, если это нужно. Разделяй и властвуй. А то, что ты из-за этого смешивания ролей напоролся на один из подводных камешков C++ (о котором статья выше и прямой ответ на твой вопрос), всего лишь случайность.
3
1 / 1 / 0
Регистрация: 27.08.2016
Сообщений: 6
12.09.2017, 23:03  [ТС] 5
Спасибо за ответы! Очень полезно.
0
12.09.2017, 23:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2017, 23:03
Помогаю со студенческими работами здесь

Почему не выводит текст из файла (CP1251)?
Почему не выводит текст из файла (CP1251)? #include &lt;iostream&gt; #include &lt;fstream&gt; #include...

Почему innerHTML выводит только текст?
файл html &lt;div id=&quot;elem&quot;&gt;&lt;/div&gt; файл js var text = '&lt;b&gt;текст&lt;/b&gt;'; elem.innerHTML =...

Почему не выводит текст из файла (CP1251)?
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;locale&gt; using namespace std;...

Почему прога не выводит отредактированный текст
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { string str; ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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