私はシェルソートプログラムを実行していますが、関数に配列を渡すときに問題があります。配列を関数に渡す方法について調べましたが、まだ理解しません。私の関数に配列を渡すことができません
#include <iostream>
#include <cmath>
using namespace std;
int shellsort(int arr[]){
int gap = floor(sizeof(arr)/2);
for(int gap = floor(sizeof(arr)/2); gap < 0; gap=gap/2){
for(int i = gap; i < sizeof(arr); i++){
if(arr[i] < arr[i-gap]){
int temp = arr[i];
arr[i] = arr[i-gap];
arr[i-gap] = temp;
if(gap == 1){
if(arr[i-1] < arr[i-2]){
int temp = arr[i-1];
arr[i-1] = arr[i-2];
arr[i-2] = temp;
}
}
}
}
}
return arr;
}
int main(){
int numcount;
cin>>numcount;
int numbers[numcount];
for(int i; i<numcount; i++){
cin>>numbers[i];
}
int numbers = shellsort(numbers);
cout<<numbers;
}
あなたはいけない、少なくとも3つの事をやっています。 – LogicStuff
'std :: vector'を使います。 – jotik
'std :: vector'を使いたくない場合は、' int shellsort(int arr []) 'に配列の大きさ' int shellsort(int arr、size_t size) 'をとり、ポインタの崩壊 – doctorlove