Solved

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

Posted on 2008-09-29
3
226 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
Comment Utility
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
Comment Utility
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
Comment Utility
Thank you!
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Bit flags and bit flag manipulation is perhaps one of the most underrated strategies in programming, likely because most programmers developing in high-level languages rely too much on the high-level features, and forget about the low-level ones. Th…
This article introduced a TextBox that supports transparent background.   Introduction TextBox is the most widely used control component in GUI design. Most GUI controls do not support transparent background and more or less do not have the…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

762 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

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now