我在数组中有一组数据。第一个值表示记录数,第二个数字表示一个记录中的数据数。数据将循环并计算,直到记录数等于0。
3 - >第1组 - 没有记录3
2 - >记录1包含两个数据值
10.00 - >数据1
20.00 - >数据2
4 - >记录2包含四个数据值
15.00
15.01
3.00
3.01
3
5.00
9.00
4.00
2 - >第2组 - 没有记录2
2
8.00
6.00
2
9.20
6.75
0
我需要计算一组记录的总和,并且需要将其从记录的数量中除去,然后需要从每个记录中最小化该值以获得该值(在减少总和/否后得到记录)
(第1套记录)
1.99
8.01
10.01
(第2套记录)
0.98 - > ((8.00 + 6.00)+(9.20 + 6.75))/ 2 - (8.00 + 6.00)
0.98
这是我提出的代码,但我得到的结果不同,无法找到错误的地方。
我的输出
171.38< - 第1组记录
135.36
117.36
118.57< - 第2组记录
102.62
// (inputLines is the name of the array with data)
int data = 0;
float temp = 0;
List<string> tempOutputFileList = new List<string>();
while (inputLines[data] != "0")
{
var listOfPeople = new List<float>();
int people = int.Parse(inputLines[data]);
for (int n = 0; n < people; n++)
{
data = data + 1;
int receipts = int.Parse(inputLines[data]);
for (int p = 0; p < receipts; p++)
{
data = data + 1;
temp += float.Parse(inputLines[data]);
listOfPeople.Add(temp);
if (listOfPeople[n].ToString() != null)
{
listOfPeople[n] = temp;
}
}
}
float sum = 0;
string tempValue = null;
double receiptValue = 0;
foreach (float item in listOfPeople)
{
sum += item;
}
for (int v = 0; v < people; v++)
{
receiptValue = (sum / people - listOfPeople[v]);
}
data++;
tempOutputFileList.Add(" ");
listOfPeople.Clear();
}
foreach (string val in tempOutputFileList)
{
Console.WriteLine(val);
}
答案 0 :(得分:0)
您需要在汇总整组记录后计算平均值。但是,另一方面,如果您只存储每个人的总和,您还可以简化计算平均值的方法。请参阅以下代码以生成您期望的结果(但有些符号不同):
int data = 0;
List<string> tempOutputFileList = new List<string>();
while (inputLines[data] != "0")
{
var listOfPeople = new List<float>();
int people = int.Parse(inputLines[data++]);
for (int n = 0; n < people; n++)
{
int receipts = int.Parse(inputLines[data++]);
float tempPeople = 0;
for (int p = 0; p < receipts; p++)
{
tempPeople += float.Parse(inputLines[data++]);
}
listOfPeople.Add(tempPeople);
}
foreach (float item in listOfPeople)
{
Console.WriteLine(listOfPeople.Average() - item);
}
}
Console.ReadLine();