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
Medium Priority
212 Views
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
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

LVL 55

Expert Comment

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

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: ");
}
``````
0

LVL 55

Expert Comment

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

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

Author Comment

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: ");
score[i, 0] = Convert.ToInt32(InValue);

}
}
}
}
``````
0

LVL 6

Expert Comment

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.
``````
0

LVL 6

Expert Comment

ID: 22696556
Sorry, the correct line should be

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

LVL 55

Accepted Solution

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: ");
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

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: ");
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]);
}
}
}
}
}
``````
0

LVL 55

Expert Comment

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: ");
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

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: ");
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);
}
}
}
0

## Featured Post

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â€¦
###### Suggested Courses
Course of the Month10 days, 7 hours left to enroll

#### 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.