2015-07-12 73 views
-4
  1. 我创建一个数组并从控制台填充它。
  2. 我在控制台中打印该数组。
  3. 我检测数组中的最大和最小元素并将它们输出到控制台中。
  4. 然后,我需要切换最大和最小元素,并输出 更新的数组(不创建一个新的)。
  5. (可选)我需要输出包含切换(最大和最小)元素的新数组。
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(); 
    } 

的问题是,我不知道如何让旧阵列切换元素。具有临时变量的模式返回我“0”。如何切换数组中的最大和最小元素?

+0

你是什么意思_switch最大和最小元素和输出更新的数组(没有创建一个新的)。我没有看到你已经更新了数组。我没有downvote。 –

+0

如果你投下来,请至少发表评论! –

+0

我需要切换数组中的MAX和MIN元素,并在控制台中输出现有数组。 –

回答

1

问题是你正在切换你的临时变量。但是你想切换数组中的最小和最大元素。您切换代码应该像下面:

temp = t[MaxElementIndex]; 
t[MaxElementIndex]=t[MinElementIndex]; 
t[MinElementIndex]=temp; 

中,然后你遍历你的数组:

Console.WriteLine("Switched array: "); 
foreach (var newItem in t) 
    { 
     Console.Write(newItem.ToString()); 
    } 

希望这有助于。

+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]在临时变量则采用t替换[minElement]最后用临时变量中存储的最大值代替最小值。

+0

谢谢!不幸的是我不能设置2个答案! –

相关问题