Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Creating arrays and calculations

Posted on 2008-10-11
10
Medium Priority
?
212 Views
Last Modified: 2013-12-17
I need to create a program in C# that will accepts 10 scores with values of 1-10 and put them in an array, then create an other array representing what percentage of 100 the scores represent. I'm not really sure where to begin. Can anyone offer any suggestions?
~TIA
0
Comment
Question by:98fatboyrider
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 4
  • 2
10 Comments
 
LVL 55

Expert Comment

by:Jaime Olivares
ID: 22695189
you can create a two dimensional array:

int score[][] = new int[10][2];

so, for score write to score[i][0] and for percentages write to score[i][1]
0
 

Author Comment

by:98fatboyrider
ID: 22695248
That gives me a Error Bad array declarator error. Any other suggestions?
    class Program
    {
        static void Main(string[] args)
        {
           int score[][] = new int[10][2];
            int InValue;
 
            Console.WriteLine("Enter 10 scores: ");
            Score = Console.ReadLine();
        }

Open in new window

0
 
LVL 55

Expert Comment

by:Jaime Olivares
ID: 22695285
sorry, mixing C# with C++ (too much work!!), correct way in C# is:

            int[,] score = new int[10,2];
0
Veeam Task Manager for Hyper-V

Task Manager for Hyper-V provides critical information that allows you to monitor Hyper-V performance by displaying real-time views of CPU and memory at the individual VM-level, so you can quickly identify which VMs are using host resources.

 

Author Comment

by:98fatboyrider
ID: 22695333
I think I have the array filling with the scores, but now how do I do the calculation representing what percentage of 100 the scores are in the second array?
    class Program
    {
 
        static void Main(string[] args)
        {
            int[,] score = new int[10, 2];
            string InValue;
 
            for(int i = 0; i <= 10; i++)
            {
            Console.WriteLine("Enter scores: ");
            InValue = Console.ReadLine();
            score[i, 0] = Convert.ToInt32(InValue);
 
            }
        }
    }
}

Open in new window

0
 
LVL 6

Expert Comment

by:alex_paven
ID: 22696551
Something like this?

for (int i = 0; i < scores.GetUpperBound(0); i++) {
  scores[i][1] = Math.Round(scores[i][0] / maxScore, 2) * 100;
} //where maxScore is the maximum value of the score.

Open in new window

0
 
LVL 6

Expert Comment

by:alex_paven
ID: 22696556
Sorry, the correct line should be

scores[i,1] = Convert.ToInt32(Math.Round(scores[i,0] / maxScore, 2) * 100);

Open in new window

0
 
LVL 55

Accepted Solution

by:
Jaime Olivares earned 1500 total points
ID: 22696589
each time you input a new number you should accumulate a total, so at the end of input you will be able to evaluate each score as percentage:

        static void Main(string[] args)
        {
            int[,] score = new int[10, 2];
            string InValue;
            int total = 0;   // <-------------- accumulator
            int value;   // <------------ instant value
 
            for(int i = 0; i <= 10; i++)
            {
               Console.WriteLine("Enter scores: ");
               InValue = Console.ReadLine();
               value = Convert.ToInt32(InValue);
               score[i, 0] = value;
               total += value;
            }
        }

well after this first for() loop, you will need a second for() loop to determine the percentage as:

      percentage = value * 100 / total;
0
 

Author Comment

by:98fatboyrider
ID: 22698257
Thanks for the help, but it still seem to be missing something. This is all fairly new to me, so any suggestions would be greatly appreciated.
        static void Main(string[] args)
        {
            int[,] score = new int[10, 2];
            string InValue;
            int total = 0;
            int value;
            int percentage;
            int maxScore;
 
            for(int i = 0; i <= 10; i++)
            {
            Console.WriteLine("Enter scores: ");
            InValue = Console.ReadLine();
            value = Convert.ToInt32(InValue);
            score[i, 0] = value;
            total += value;
 
            for (int j = 0; j < score.GetUpperBound(0); j++)
            {
                score[j, 1] = Convert.ToInt32(Math.Round(score[j, 0] / maxScore, 2) * 100);
                percentage = value * 100 / total;
                Console.WriteLine(score[i, j]);
            }
            }
        }
    }
}

Open in new window

0
 
LVL 55

Expert Comment

by:Jaime Olivares
ID: 22699370
appears to be you need a litte variation:

 static void Main(string[] args)
        {
            int[,] score = new int[10, 2];
            string InValue;
            int total = 0;
            int value;
            int percentage;
            int maxScore;
 
            for(int i = 0; i <= 10; i++)
            {
                Console.WriteLine("Enter scores: ");
                InValue = Console.ReadLine();
                value = Convert.ToInt32(InValue);
                score[i, 0] = value;
                total += value;
            }    // close loop here

            for (int j = 0; j < score.GetUpperBound(0); j++)
            {
                score[j, 1] = Convert.ToInt32(Math.Round(score[j, 0] / maxScore, 2) * 100);
                percentage = value * 100 / total;
                Console.WriteLine(score[i, j]);
            }
        }
    }
}
0
 

Author Comment

by:98fatboyrider
ID: 22857379
static void Main(string[] args)
        {
            int[] score = new int[10];
            string InValue;
            int total = 0;
            int value;
            Double Ave;

            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine("Enter scores: ");
                InValue = Console.ReadLine();
                value = Convert.ToInt32(InValue);
                //score[i, 0] = value;
                score[i] = value;
               // total += value;
            }

            Array.Sort(score);
            for (int i = 1; i < 9; i++)
            {
                total += score[i];
            }
            Ave = total / 8;
            Console.WriteLine("\nAverage = "+ Ave);
            Console.Read();
        }
    }
}
0

Featured Post

Tech or Treat!

Submit an article about your scariest tech experience—and the solution—and you’ll be automatically entered to win one of 4 fantastic tech gadgets.

Question has a verified solution.

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

It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
This course is ideal for IT System Administrators working with VMware vSphere and its associated products in their company infrastructure. This course teaches you how to install and maintain this virtualization technology to store data, prevent vuln…
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…

618 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