Muamin Hugsy
Muamin Hugsy

Reputation: 3

Program returning single value for double (C++)

Basically I just started doing C++ again after a while because I need to (Degree sorta commands it) and I have been tasked with a simple task of writing a simple program that would take a function and use 2 integer inputs (N and M), returning a double output (S). In one part I am asked to to use a loop to display values for S all the way up to N=10 from N=0 for the value M=10

Ive run into a problem where the return give the value "5" for every N up to 10.

This is the code: (do not mind the comments)

#include <iostream>
#include <iomanip>
#include <fstream>
#include <cmath>
//Function, Part A
double func_18710726(int N, int M)
{
    double S = 0;

    for (int n = 1; n <= N; n++)
        for (int m = 1; m <= M; m++)
        {
            S = S + (sqrt(m*n)+exp(sqrt(m))+ exp(sqrt(n)))/(m*n + 2);
        }
    return S;
}

//Part B
double func_18710726(int, int);
using namespace std;
int main()
{
    int N, M;
    double S;

    //Part B1
    do {
        cout << "Enter Value of N for N > 0 and an integer" << endl;
        cin >> N;
    } while (N <= 0);

    do {
        cout << "Enter value of M for M > 0 and an integer" << endl;
        cin >> M;
    } while(M <= 0);

    //Part B2
    S = func_18710726(N, M);
    cout << "The Summation is ";
    cout << fixed << setprecision(5) << S << endl;

    //Part B3
    ofstream output;
    output.open("Doublesum.txt");
    M = 1;
    for (int n = 1; n <= 10; n++)
    {
        S = func_18710726(n, M);
        cout << "The summation for N = " << n << " is ";
        cout << fixed << setprecision(5) << 5 << endl;
        output << fixed << setprecision(5) << 5 << endl;
    }

    output.close();
    return 0;
}

The output gives me:

Enter Value of N for N > 0 and an integer
1
Enter value of M for M > 0 and an integer
2
The Summation is 4.20696
The summation for N = 1 is 5
The summation for N = 2 is 5
The summation for N = 3 is 5
The summation for N = 4 is 5 
The summation for N = 5 is 5
The summation for N = 6 is 5
The summation for N = 7 is 5
The summation for N = 8 is 5
The summation for N = 9 is 5
The summation for N = 10 is 5

--------------------------------
Process exited after 2.971 seconds with return value 0
Press any key to continue . . .

Any help as to why this is happening is much appreciated.

The Question itself

I am sorry if I posted this in the wrong place, if I do, Mods please go easy on me :)

Upvotes: 0

Views: 73

Answers (1)

The Dark
The Dark

Reputation: 8514

This line:

 cout << fixed << setprecision(5) << 5 << endl;

has 5 (five) as its output - you want S (esss)

Probably S is not such a great name for a variable (neither is l)

Upvotes: 2

Related Questions