私は、数値のリストを取り、リストにいくつの偶数と奇数があるかを返す関数を持っています。しかし、私は数字のリストを渡したが、私は0の結果を得ている。ここでコードが偶数とオッズの期待数を返さない
は私の関数である -
public static string HowManyEvenAndOdds(List<int> numbers)
{
int numOfOdds = 0;
int numOfEvens = 0;
int numOfBoth = 0;
foreach (int i in numbers) {
bool isEven = i % 2 == 0;
bool isOdd = i % 3 == 0;
numOfBoth = isEven && isOdd ? numOfBoth++ : numOfBoth;
numOfEvens = isEven ? numOfEvens++ : numOfEvens;
numOfOdds = isOdd ? numOfOdds++ : numOfOdds;
}
return string.Format("This list has {0} odd numbers,\n{1} even numbers,\nand {2} numbers that are even and odd.", numOfOdds, numOfEvens, numOfBoth);
}
任意のアイデア私が間違ってここにやっているものに?私はそれを通してデバッグしましたが、リストのどれも増分していません。あなたは正しい方法で I%3を奇数計算されていません
おかげ
[奇数](https://simple.wikipedia.org/wiki/Odd_number)は「2の倍数ではない」と定義されています。 'i%3 == 0'は**ではありません**あなたが奇数をテストする方法はありません。そして、数字は偶数と奇数の両方ではありません。 –
誤って私のコメントを削除しました...確かに 'numOfBoth'は、渡された総数のいずれかでなければなりません。 'numOfBoth = numOfEvens + numOfOdds'か、それ以外に何があるのかわかりません – Josh
@ p.s.w.gこれは私が考えていると思います。 –