ProgressIndicator
我想按升序排列X [],但是如果我在数组上更改了一个值,Y []数组上的相同值也会改变到同一个地方。
结果:
X[] = {4,2,8,2}
Y[] = {12,12,6,12}
非常感谢!
答案 0 :(得分:1)
在排序时,你必须同时移动2个数组元素
这是一个带冒号排序的例子:( n
数组的长度)
for(int last=0; last<n; last++)
{
for(int new=0; new<n-1; new++)
{
if(X[new]>X[new+1])
{
int temp = X[new+1];
X[new+1] = X[new];
X[new] = temp;
temp = Y[new+1];
Y[new+1] = Y[new];
Y[new] = temp;
}
}
}
就像这样(在移动数组元素的循环中重复)
答案 1 :(得分:0)
选择任意排序功能。例如冒泡排序。修改函数,以便对两者进行相同的操作。
void swap(long *a, long *b)
{
int t=*a;
*a=*b;
*b=t;
}
void bubble_sort(long list[], long n, long extra[])
{
long c, d, t;
for (c = 0 ; c < ( n - 1 ); c++)
for (d = 0 ; d < n - c - 1; d++)
if (list[d] > list[d+1])
{
swap(list[d], list[d+1]);
swap(extra[d], extra[d+1]);
}
}