Min,max and average of array

Hi, I tried to make a program that print out a min , max and average value

but the average value doesn't work !!!

What should I do to fix this problem.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
using namespace std;


int main ()
{




    int array [5],max=0,low=0,mid=0;

    for (int w=0 ; w<5; w++)
    {
        cout << "Enter value "<<endl;

        cin >>    array[w];

    }

    max=array[0];
    low=array[0];
    mid=array[0];

    for (int i=0 ; i<5; i++)
    {







        if ( max<array[i])
        {

            max=array[i];
        }


        else if ( low>array[i])
        {
            low=array[i];

        }

        else if (mid<=array[i]&&mid>=array[i])
        {

            mid= max+low/2;

        }


    }

    cout << "the minimum value "<<"  "<< low<< "  " << "the average value "<<mid<< "  "<<"the highest value"<<"  "<<max<<endl;


}



Last edited on
Average is calculated like so:
1
2
3
4
5
int average=0;
for(int i=0; i<5; i++) {
	average+=A[i];
}
average/=5;
What kind of average are you trying to calculate?
http://en.wikipedia.org/wiki/Average

This else if (mid<=array[i]&&mid>=array[i]) is only true if mid == array[i]. I don't think this is what you wanted.
still doesn't work

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
using namespace std;


int main ()
{




    int array [5],max=0,low=0,mid=0;

    for (int w=0 ; w<5; w++)
    {
        cout << "Enter value "<<endl;

        cin >>    array[w];

    }

    max=array[0];
    low=array[0];
    mid=array[0];

    for (int i=0 ; i<5; i++)
    {







        if ( max<array[i])
        {

            max=array[i];
        }


        else if ( low>array[i])
        {
            low=array[i];

        }

        mid+=array[i];



    }
    mid/=5;

    cout << "the minimum value "<<"  "<< low<< "  " << "the average value "<<mid<< "  "<<"the highest value"<<"  "<<max<<endl;


}






if the input were 1 ,2 ,5,8 and 6 the ave value will be 4



----

I want the average value of the input numbers ( the middle number ^^ )


like

1

11

5

10

100

the middle number will be 10 !


that what I want .
Last edited on
You can do it at this way

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# include <iostream>
# include <limits.h>// To define INT_MAX : the highest nbr int takes
using namespace std;

int main ()
{
    int array [5],maxNbr=0,minNbr=INT_MAX,sumNbr=0,tmpNbr;
    float aveNbr=0;

    for (int w=0 ; w<5; w++)
    {
        cout << "Enter value -> " ;
        cin >> array[w];
    }

    for (int i=0 ; i<5; i++)
    {
        maxNbr = max(maxNbr,array[i]);
        minNbr = min(minNbr,array[i]);
        sumNbr += array[i];
    }

    aveNbr = (float(sumNbr)/5);

    for(int i=0;i<4;i++)
    {
        for(int j=i;j<5;j++)
        if(array[i]>array[j])
        {
            tmpNbr = array[i];
            array[i] = array[j];
            array[j] = tmpNbr;
        }
    }

    for(int i=0;i<5;i++)
    cout << array[i] << endl;
    cout << endl;
    midNbr = sumNbr/5;//midNbr = sumNbr/strlen(array);

    cout << "The minimum value is : " << minNbr << endl;
    cout << "The maximum value is : " << maxNbr << endl;
    cout << "The average       is : " << aveNbr << endl;
    cout << "The middle number is : " << array[2] << endl;

    return 0;
}
Topic archived. No new replies allowed.