如果我在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时如何迎合,以便元素循环回到数组中。
我对编程非常陌生,非常感谢所提供的任何帮助。谢谢!
答案 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;
}