【发布时间】:2017-03-03 09:37:31
【问题描述】:
我收到了各种我不理解的错误和警告。
错误:带有数组的前两个函数中的“下标值既不是数组也不是指针也不是向量”
警告:传递“SelectionSort”的参数 1 会从指针生成整数而不进行强制转换 int s = SelectionSort(arr, len);
注意:预期为“int”,但参数类型为“int *”:void SelectionSort(int arr, int len) {
错误:不应忽略 void 值:int s = SelectionSort(arr, len);
听起来它们很简单,但类型和值是我的弱点!任何指针? (双关语无意)
int find_maxind(int arr, int len) {
if(len == 1) return 0;
int ind = find_maxind(arr,len-1);
return (arr[ind] > arr[len-1])?ind:len-1;
}
void SelectionSort(int arr, int len) { //this cannot change
if(len <= 1) return;
int max_ind = find_maxind(arr,len);
int temp = arr[max_ind];
arr[max_ind] = arr[len-1];
arr[len-1] = temp;
SelectionSort(arr, len-1);
}
int main(){ //testing the sorting
int arr[] = {1,2,3,4,5,6,7,8,9,11,13,15,17};
int len = 13;
int s = SelectionSort(arr, len);
}
【问题讨论】:
-
发布有关构建错误的问题时,请包含未编辑的完整错误输出完整。还要指出错误在源中的位置,例如 cmets。
-
int find_maxind(int arr, int len) {-->int find_maxind(int arr[], int len) { -
您的函数被声明为采用
int arr,这正是一个名为数组的整数。你想传递一个数组,int[] arr -
int s = SelectionSort(arr, len);也是错误的,原因很明显 -
嗯...
void SelectionSort(int arr, int len)- 你想要一个数组,对?int find_maxind(int arr, int len)也是如此?