配列をソートするコードを C# で書いています。右側にすべての負の値、左側にすべての正の値が必要です。降順であってはなりません。
namespace SortApp
{
class Program
{
static void Main(string[] args)
{
int[] newInt = new int[] { 5, -2, -1, -4, -20, 6, 7, -14, 15, -16, 8, 9, 10 };
int size = 12, i= 0; // or newInt.Length
for (i = 0; i < newInt.Length; i++)
{
if (newInt[i] < 0 && newInt[size] > 0)
{
int temp = newInt[i];
newInt[i] = newInt[size];
newInt[size] = temp;
size--;
}
}
for (i = 0; i < newInt.Length; i++)
{
Console.Write(newInt[i]);
Console.Write(" ");
}
}
}
}
しかし、出力は次のようになります (-20 は間違った側にあります):
5 10 9 8 -20 6 7 -14 15 -16 -4 -1 -2
しかし、意図した出力は次のとおりです。
5 10 9 8 15 6 7 -14 -20 -16 -4 -1 -2
コードが意図した出力を生成しないのはなぜですか?