Solved

I am trying to use arrays to calculate avg of scores disregarding min and max values.

Posted on 2008-09-29
3
228 Views
Last Modified: 2012-05-05
I tried to figure in the subtraction of the minimum and maximum value but the average does calculate correctly; I know I need to alter the (_scoreCount.Count); also, but I am not sure how. Can anyone help me with that?

class ScoreInput
    {

        private List<int> _scoreCount;
        private double _avg;
        private int _maxCnt;
        private int _minCnt;

        public ScoreInput()
        {
            _scoreCount = new List<int>();
        }

        public double Avg
        {
            get
            {
                CalculateAvg();
                return _avg;
            }
        }

        public double MaxCnt
        {
            get
            {
                DetermineMax();
                return _maxCnt;
            }
        }

        public double MinCnt
        {
            get
            {
                DetermineMin();
                return _minCnt;
            }
        }


        private void CalculateAvg()
        {
            int total = 0;
            foreach (int c in _scoreCount)
                total += (c - (_maxCnt + _minCnt));
            _avg = total / _scoreCount.Count;
        }

        private void DetermineMax()
        {
            int maxCntIndex = 0;
            for (int i = 1; i < _scoreCount.Count; i++)
                if (_scoreCount[i] > _scoreCount[maxCntIndex])
                    maxCntIndex = i;
            _maxCnt = _scoreCount[maxCntIndex];
        }

        private void DetermineMin()
        {
            int minCntIndex = 0;
            for (int i = 1; i < _scoreCount.Count; i++)
                if (_scoreCount[i] < _scoreCount[minCntIndex])
                    minCntIndex = i;
            _minCnt = _scoreCount[minCntIndex];
        }



        public void GetData()
        {
            Console.Write("Enter a Score: ");
            string inValue = Console.ReadLine();
            try
            {
                _scoreCount.Add(Convert.ToInt32(inValue));
            }
            catch (Exception e)
            {
            }
        }
    }


class Program
    {
        static void Main(string[] args)
        {
            ScoreInput scores = new ScoreInput();

            Console.WriteLine();
            Console.WriteLine();
            while (true)
            {
                scores.GetData();
                Console.WriteLine("The Average Score is {0}", scores.Avg);
                Console.WriteLine("The Max Score is {0}", scores.MaxCnt);
                Console.WriteLine("The Min Score is {0}", scores.MinCnt);
            }
        }
    }
0
Comment
Question by:jpmc_cmsops
  • 2
3 Comments
 

Author Comment

by:jpmc_cmsops
ID: 22595113
My mistake I need to calculate the Percentage of all scores minus the max and min values; for example:
With these scores {100, 95, 90, 80, 85} ; it would only calculate: ((95 + 90 + 80) / 100). Thank you for anyone's help.
0
 
LVL 2

Accepted Solution

by:
CAnuszczyk earned 500 total points
ID: 22595325
private void CalculateAvg()
        {
            int total = 0;
            foreach (int c in _scoreCount)
                total += c;

             total -= (_maxCnt + _minCnt );
            _avg = total / _scoreCount.Count;
        }

0
 

Author Closing Comment

by:jpmc_cmsops
ID: 31501134
Thank you!
0

Featured Post

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Server Error 11 58
Counting connections to SQL Server through C# 3 32
C# 2015 Downloading text file and preserving the line breaks 5 37
MediaHelp 4 23
Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…

773 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question