1番目の平均が2次の平均よりも高くないか少し下回る前に、いくつかの整数をArrayList
に追加する必要があります。しかし、最終的に、私はすべての要素を出力する必要がある私はそれを行うことはできません。私はArrayList
の代わりにList<>
を使用しようとしましたが、出力に問題がありました。リストから要素を出力できません
ここに私のコードです:私は、テストプログラムに使用
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メソッド内のループで大きな問題が発生することがあります。 _NewMarkList_は最初の反復では空です。これは、AverageOfArrayList(Sum/Array.Count)の除算が0/0であり、NaNを生成することを意味します。それでも、ここで何を達成しようとしているのかは完全には分かりません。したがって、おそらくあなたはこのコードの目的が何であるかをよりよく説明するべきです。 – Steve