• Status: Solved
• Priority: Medium
• Security: Public
• Views: 238

# form displaying input values and percetages

I have to create a program that accepts intergers and then displays a message box showing the original values, the total, and the percentage each value contibutes to the total. My question is how do I calculate the percentage each value contibutes to the total?
``````using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Text;

namespace Chp7Ex2
{
class Program
{
static void Main(string[] args)
{
string inValue;
int total = 0;
Console.WriteLine("How many values will be entered: ");
int arraySize = Convert.ToInt32(sSize);
int [] input = new int[arraySize];

for (int i=0; i < arraySize; i++)
{
Console.Write("Enter number {0}: ", i + 1);
input[i] = Convert.ToInt32(inValue);
}

for (int i = 0; i < arraySize; i++)
{
total += input[i];
}
MessageBox.Show(total);
}
}
}
``````
0
98fatboyrider
3 Solutions

Commented:
100 / Total * Value
0

Software ArchitectCommented:
you can show you data as:

// after calculating total
string message = "";
for (int i = 0; i < arraySize; i++)
{
message += string.Format("{0} ({1}%)\r\n", input[i], input[i] * 100 / total);
}
message += string.Format("Total: {0}", total);
MessageBox.Show(message);
0

Technical ManagerCommented:
Jaime's solution should work but if there are 3 values 12,12, 12 the % will just show 33% each time as round is not implemented where as it should show 33.33%

i have extended Jaimes solution further to take care of that too
``````			string inValue;
int total = 0;
Console.WriteLine ("How many values will be entered: ");
int arraySize = Convert.ToInt32 (sSize);
int[] input = new int[arraySize];

for (int i = 0; i < arraySize; i++)
{
Console.Write ("Enter number {0}: ", i + 1);
input[i] = Convert.ToInt32 (inValue);
}

for (int i = 0; i < arraySize; i++)
{
total += input[i];
}
string message = "\r\n\r\n";
for (int i = 0; i < arraySize; i++)
{
message += string.Format ("Input value no {0} : {1} having % contribution ({1}%)\r\n", i, input[i], Math.Round(input[i] * 100.00 / total, 2));
}
message += string.Format ("\r\nTotal: {0}", total);
Console.WriteLine (message);