Мне нужно добавить некоторые целые числа в ArrayList
, прежде чем 1-й средний не будет выше или немного ниже, чем во 2-м среднем. Но в конце концов, когда мне нужно выводить все элементы, я не могу этого сделать. Я попытался использовать List<>
вместо ArrayList
, но у меня были проблемы с выходом.Невозможно вывести элементы из списка <int>
Вот мой код:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace Marks
{
internal class Program
{
public static float AverageOfArrayList(ArrayList Array)
{
float AverageOfArrayList = 0;
float Sum = 0;
foreach (int item in Array)
{
Sum += item;
}
AverageOfArrayList = Sum/Array.Count;
return AverageOfArrayList;
}
public static ArrayList GetVariables(ArrayList NewMarksList, float CurrentAverage, double MissedAverage)
{
if (CurrentAverage > MissedAverage)
{
for (int i = 0; MissedAverage < AverageOfArrayList(NewMarksList) ; i++)
{
NewMarksList.Add(2);
}
}
if (CurrentAverage < MissedAverage)
{
for (int i = 0; AverageOfArrayList(NewMarksList) < MissedAverage; i++)
{
NewMarksList.Add(5);
}
}
return NewMarksList;
}
static void Main(string[] args)
{
float CurrentAverage = 0;
double MissedAverage = 0;
ArrayList CurrentMarksList = new ArrayList();
Console.WriteLine("Enter how much marks have you got");
int CountOfMarks = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("Enter the 1-st average");
CurrentAverage = float.Parse(Console.ReadLine());
Console.WriteLine("Enter the 2-nd average");
MissedAverage = Convert.ToDouble(Console.ReadLine());
ArrayList newList = GetVariables(CurrentMarksList, CurrentAverage, MissedAverage);
List<int> OutputArray = newList.Cast<int>().ToList();
Console.WriteLine("Marks to add :");
for (int OutputCounter = 0; OutputCounter < OutputArray.Count; OutputCounter++)
{
Console.Write(OutputArray[OutputCounter] + " ");
}
Console.ReadKey();
}
}
}
входы, которые я использовал для тестирования программы:
CountOfMarks = 5;
CurrentAverage = 3,4;
MissedAverage = 3,8;
Output = Nothing
Вы можете добавить то, что входы приведены в этой программе и что ожидаемый выход? – Steve
«Были проблемы с», можете ли вы быть более конкретным? Какая проблема? –
Я вижу большую проблему в ваших циклах внутри метода GetVariables. На первой итерации _NewMarksList_ пуст. Это означает, что деление в AverageOfArrayList (Sum/Array.Count) равно 0/0 и дает NaN. Тем не менее, совершенно неясно, чего вы пытаетесь достичь здесь. Поэтому, возможно, вам следует лучше объяснить, какова цель этого кода. – Steve