private static void Main(string[] args)
{
int i;
int MaxElementIndex = 0;
int MinElementIndex = 0;
int temp = 0;
int[] t = new int[5];
for (i = 0; i < 5; i++)
{
Console.WriteLine("enter {0} element array", i + 1);
t[i] = int.Parse(Console.ReadLine());
}
int max = t[0];
for (i = 0; i < 5; i++)
{
if (max < t[i])
{
max = t[i];
MaxElementIndex = i;
}
}
Console.WriteLine("the maximum a value is equal {0} and index number is {1}", max, MaxElementIndex);
int min = t[0];
for (i = 0; i < 5; i++)
{
if (min > t[i])
{
min = t[i];
MinElementIndex = i;
}
}
Console.WriteLine("the minimun value is equal {0} and index number is {1}", min, MinElementIndex);
Console.WriteLine("Initial array: ");
foreach (var item in t)
{
Console.Write(item.ToString());
}
Console.ReadKey();
Console.WriteLine("Changed array:");
MaxElementIndex = temp;
MinElementIndex = MaxElementIndex;
temp = MinElementIndex;
foreach (var newItem in t)
{
Console.Write(newItem.ToString());
}
Console.ReadKey();
}
问题是我不知道如何使用切换元素获取旧数组。带有temp变量的模式返回“0”。
答案 0 :(得分:1)
您的代码中的此部分有误:
Console.ReadKey();
Console.WriteLine("Changed array:");
MaxElementIndex = temp;
MinElementIndex = MaxElementIndex;
temp = MinElementIndex;
它应该是:
Console.ReadKey();
Console.WriteLine("Changed array:");
temp = t[MaxElementIndex];
t[MaxElementIndex] = t[MinElementIndex];
t[MinElementIndex] = temp;
首先将t [maxElement]存储在temp变量中,然后用t [minElement]替换它,最后将最小值替换为存储在temp变量中的最小值。
答案 1 :(得分:1)
问题是您正在切换临时变量。但是你想要在数组中切换min和max元素。您的切换代码应如下所示:
temp = t[MaxElementIndex];
t[MaxElementIndex]=t[MinElementIndex];
t[MinElementIndex]=temp;
然后你应该遍历你的阵列:
Console.WriteLine("Switched array: ");
foreach (var newItem in t)
{
Console.Write(newItem.ToString());
}
希望这有帮助。