Что не так с моей программой? Застрял в цикле расчета или сбой вызова функции?

Это моя программа. Я не понимаю, что в этом плохого. После того, как я даю входные данные, ничего не происходит. Я предполагаю, что программа застряла в цикле вычислений, или я не могу вызвать функцию факта в цикле. Идеи о том, где проблема должна быть?

#include<iostream>
#include<math.h>
using namespace std;
int fact(int a)
{
    int f=0;
    for(int i=1; i<=a;i++)
    f=f*i;
}

main()
{
    double x,temp1,temp2,sine;
    int p,n;
    temp1=temp2=0;
    cout<<"Enter the value of x: ";
    cin>>x;
    cout<<"\nEnter the length of series: ";
    cin>>n;
    if(n%2==0)
    {
        for(p=1;p<=n-1;p+4)
        {
            temp1=temp1+(pow(x,p)/fact(p));
        }
        for(p=3;p<=n-1;p+4)
        {
            temp2=(temp2+pow(x,p)/fact(p))*(-1);
        }
    }
    else
    {
        for(p=1;p<=n;p+4)
        {
            temp1=temp1+(pow(x,p)/fact(p));
        }
        for(p=3;p<=n;p+4)
        {
            temp2=-(temp2+pow(x,p)/fact(p));
        }
    }
    sine=temp1+temp2;
    cout<<"\nsinx= "<<sine;
}

2 ответа

Решение

Что такое p+4 делать в разделе приращения цикла for? Также вы не возвращаете никаких значений из int fact(),

Проверь это

    int fact(int a)
{
    int f=1;
    for(int i=1; i<=a;i++)
    f=f*i;
}
Другие вопросы по тегам