通过调用交换值对数组进行排序
Sorting an array by calling swap by value
问题:创建一个包含 10 个整数的数组。使用初始值设定项用 {10,5,8,55,43,87,42,12,25,7} 填充数组数据。编写一个排序函数 sortArray 将调用交换函数。交换函数将按值调用。重写另一个排序函数 sortArray2,它将调用 swapByRef 函数。
我的代码 :
void swap (int x, int y)
{
int temp = x;
x = y;
y = temp;
}
void sortArray (int A[], int n)
{
int i,j,minIndex,temp;
for (i=0 ; i<n-1 ; i++)
{
minIndex = i;
for (j=i+1 ; j<n ; j++)
if (A[j] < A[minIndex])
minIndex = j;
swap (A[i],A[minIndex]);
}
}
void swapByRef (int &x, int &y)
{
int temp = x;
x = y;
y = temp;
}
void sortArray2 (int A[], int n)
{
int i,j,minIndex;
for (i=0 ; i<n-1 ; i++)
{
minIndex = i;
for (j=i+1 ; j<n ; j++)
if (A[j] < A[minIndex])
minIndex = j;
swapByRef (A[i], A[minIndex]);
}
}
int main ()
{
int A[10] = {10,5,8,55,43,87,42,12,25,7};
sortArray (A,10);
for (int i=0;i<10;i++)
cout<<A[i]<<endl;
int B[10] = {10,5,8,55,43,87,42,12,25,7};
sortArray2 (B,10);
for (int i=0;i<10;i++)
cout<<A[i]<<endl;
system ("PAUSE");
return 0;
}
sortArray 不会对数组进行排序。如何编写此代码?
Write a sort a function sortArray that will call a swap function. The swap function will be called by value.
这是不可能的。 由值调用的交换函数不执行任何操作。问题出在哪里?
我想你的老师只是想让你通过这种类型的问题了解按值传递和按引用传递之间的区别。所以现在你意识到按值传递不会改变调用函数的变量值。
相关文章:
- 显示错误输出的简单数组排序程序
- C 使用单个函数对具有多种值类型的数组排序
- 2D数组排序,空格打乱顺序
- C 2D数组排序
- C++数组排序 - 将"bbba"和"0001"视为不正确排序的问题
- 数组排序功能
- CString 数组排序
- 简单的数组排序/检查 划分和征服版本
- C++ 中的多维数组排序
- 选择在++中对并行数组排序
- C++:二维指针数组排序:选择排序不适用于某些实例
- C++字符串数组排序
- C++中的指针数组排序算法
- 在VC++6中使用向量进行数组排序时出错,而在VC++2012中没有错误
- 将索引数组排序为主数组
- 数组排序、数组输入、数组输出
- C++数组排序,内存错误
- 在嵌入式系统上将数组排序功能从c++移植到c
- 基于其他int数组排序
- 多维数组排序c++奇怪行为