我的代码应该删除指定的值并移动数组。当我运行代码时,它会打印一个地址而不是数组的内容。我的代码出了什么问题?
using namespace std;
void arrayShift(int arr[], int length, int value) {
for(int i = 0; i<length; i++) {
if(arr[i] == value) {
for (int k = i; k<length-1 ; k++) {
arr[k] = arr[k+1];
}
arr[length-1] = 0;
i--;
}
}
cout << arr;
}
int main() {
int inputarr[]={9,8, 9, 9, 9, 9, 6};
int length = 7;
int value = 9;
arrayShift(inputarr,length,value);
}
答案 0 :(得分:3)
该行
cout << arr;
显示地址,因为cout不直接显示数组。
您应该使用for来显示所有值。这样的事情:
for(int i = 0 ; i < length ; i++)
cout << arr[i];
但是你真的应该把输出(for cout)放在main函数中。