如何在C编程中重新排序数组的元素

时间:2015-10-10 23:15:52

标签: c arrays

如果我在C编程中有N个元素的数组,我该如何交换一对特定的元素?

例如给定数组:

double variable[N] = {1, 2, ..., i-1, i, i+1, ..., N-1, N }

我如何以新的系统给出的方式为i + 1交换元素i:

double variable[N] = {1, 2, ...,i-1, i+1, i, ..., N-1, N } 

我的尝试是制作一个临时变量:

{ double temp = element i ;     element i =element i+1 ;   element i+1 = temp;   }

我怀疑这是否会将变量推进一个或根据需要交换变量?不幸的是,我不确定如何在代码中实现这一点,即使这是正确的方法吗?另外,我不确定当i = N时如何迎合,以便元素循环回到数组中。

我对编程非常陌生,非常感谢所提供的任何帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

如果你知道要交换哪些元素,你可以这样做:

if (i+1 < N)
{
  double temp = variable[i];
  variable[i] = variable[i+1];
  variable[i+1] = temp;
}

我首先检查i+1是否低于N(记住数组的索引从0开始)以防止在数组外读取。然后我做交换。

如果我理解你,如果你必须交换最后一个元素,你希望用第一个元素完成。在这种情况下,您可以将之前的if更改为:

if (i+1 <= N)
{
  double temp = variable[i];
  variable[i] = variable[(i+1)%N];
  variable[(i+1)%N] = temp;
}