so im trying to find the min, max, range, mean, median, and mode. The max number is right but the min isnt. Once that is corrected, i can get range and mean easily. Also, i have no idea how to get mode and median. Im guessing the values in the arr2 would have to be sorted. Any thoughts? Id appreciate it.
This refers to the values in arr2 which are the calculated values in the formula. You can enter -2 and 2 for userMin and userMax.

    #include <iostream> 
    #include <iomanip>

    using namespace std;

    int main()
    {

       cout << fixed << setprecision(1);
       float userMin;
       float userMax;

       const int SIZE = 21;
       float arr[SIZE];
       const int SIZE2 = 21;
       float arr2[SIZE2];
       int count = 0;
       cout << "enter min ";
       cin >> userMin;
       cout << "enter max ";
       cin >> userMax;
       float inc = (userMax - userMin) / (SIZE-1);
       float x = inc*count + userMin;

       double total = 0;
       double mn=arr2[0];
       double mx=arr2[0];
       float range;
       float median;
       float mode;


       for (; x <= userMax;)
       {
          for (int e = 0; e < SIZE; e++)
          {
             arr[e] = x;
             arr2[e] = (0.0572*cos(4.667*x) + 0.0218*cos(12.22*x));
             cout << setw(15) << setprecision(1)<< arr[e]
                << setw(15) << setprecision(3) << arr2[e]
                << endl;
             total += arr2[e];

             count++;
             x = userMin + inc*count;
             if (mn > arr2[e])
             {
                mn = arr2[e];
             }

             if (mx < arr2[e])
             {
                mx = arr2[e];
             }



          }
       }

       cout << endl;
       cout << "min " << mn << endl;
       cout << "max " << mx << endl;
       //cout << "mode" << mode << endl;
       //cout << "median " << median << endl;
       cout << "mean " << total / SIZE << endl;
       cout << "range " << mx - mn << endl;
       return 0;
    }

No, I asked what those values are, at the start; not what values you hope they will be at the end. Because on line 46 and 51 you're going to start using those values. You're making comparisons of those values. So what are their starting values? The very first time, when you do this,

if (mx < arr2[e])

what value does mx have? If it had the value of, say, 50 billion, would that be a problem?

Edited 1 Year Ago by Moschops

ok so mn and mx in if(mx<arr2[e]) and if(mn>arr2[e]) will have the value of the first element in the array right?

Edited 1 Year Ago by LATCH808

will have the value of the first element in the array right?

And what is that number? Is it a million? If it's a million, then mx will be a million and this condition mx<arr2[e] will never be true. So is it a million?

If you think it's not a million, what is it? You set the value of mx on line 26. What number did you set it to? What actual number? Is it zero? Is it one? Is it two?

Edited 1 Year Ago by Moschops

well it depends on the range the user puts, so lets go with -2 and 2. arr[e] hold the values from -2 and 2 while arr2[e] holds the values after being calculated for each number from -2 and 2 so arr2[0] would hold (0.0572cos(4.667(-2)) + 0.0218cos(12.22(-2))) which is -0.040. Is this what youre asking?

You created an array on line 16. The array you created is named arr2, and it is composed of 21 int values. The value of arr2[0] is random. It could be anything. You didn't set it, so it could be absolutely anything at all.

On line 27, you then make mx equal to that random number. So mx could be anything. Anything at all. If it's bigger than the largest value that you end up actually comparing it to, then it will never change.

Edited 1 Year Ago by Moschops

oh ok i see what you mean now, so how can i fix this? is it something like making mx equal to something like -2000 and mn to 2000 for example?

Edited 1 Year Ago by LATCH808

This question has already been answered. Start a new discussion instead.