C std:cout не печатается, несмотря на то, что я использую std::endl для ввода новой строки и сброса

#c #output #stdout

Вопрос:

Я новичок в C (и в основном в программировании в целом).

Я пытаюсь написать базовую программу для вывода расширения Тейлора x = 1,5 от n = 1 до n = 100. Мой код таков:

 #include <iostream>

int main() {

        double x = 1.5;
        double expx = 1;
        double summand = 1;
        
        for (int n=1; n <100;   n) {
                summand *= x/n;
                expx  = summand;

        }
        return expx

        std::cout << "final expx from n = 1 to 100 is " << expx << std::endl;
}       
 

Когда я запускаю его, он запускается без ошибок на терминале, но не отображает никаких выходных данных вообще. Я не совсем уверен, что делаю неправильно, так как, когда я запускаю другой написанный мной код, подобный этому, у меня нет проблем.

Комментарии:

1. Вы возвращаетесь из main перед выводом в std::cout (обратите внимание, что ваш пример кода даже не компилируется)

Ответ №1:

Что вам следовало сделать, так это создать функцию expx() и вывести ее результат.

 #include <iostream>

double expx()
{
    double x = 1.5;
    double expx = 1.0;
    double summand = 1.0;
        
    for (int n=1; n <100;   n) 
    {
        summand *= x/n;
        expx  = summand;
    }
    return expx;
}

int main() 
{
    double value = expx();
    std::cout << "final expx from n = 1 to 100 is " << value << std::endl;
}   
 

Ответ №2:

Все, что вы пишете после оператора return внутри функции, не будет выполняться. Вам нужно поменять местами последние две строки, т. е.:

 std::cout << "final expx from n = 1 to 100 is " << expx << std::endl;
return expx