-1
我是一年級學生,也是編程新手。我被要求寫一個函數,它可以將數組值與其索引進行交換。 EG如果數組:[4,3,0,5,1,2]然後O/P:array [4] = 0,數組[3] = 1等等。交換數組值與數組索引
這是我的代碼:
#include <stdio.h>
#include<iostream>
using namespace std;
int swaparr(int arr, int len){
int b[len];
int k;
for(int i=0; i<len; i++){
k=arr[i];
b[k]=i;
}
return b;
}
int main()
{
int arr[6]={4, 3, 0, 5, 1, 2};
cout<<swaparr(arr, 6);
return 0;
}
我得到錯誤:
prog.cpp: In function 'int* swaparr(int, int)':
prog.cpp:9:16: error: invalid types 'int[int]' for array subscript
k=arr[i];
^
prog.cpp:6:9: warning: address of local variable 'b' returned [-Wreturn-local-addr]
int b[len];
^
prog.cpp: In function 'int main()':
prog.cpp:17:25: error: invalid conversion from 'int*' to 'int' [-fpermissive]
cout<<swaparr(arr, 6);
^
prog.cpp:5:6: note: initializing argument 1 of 'int* swaparr(int, int)'
int *swaparr(int arr, int len){
^
請解釋我的錯誤。 P.S我想從錯誤中學習,所以請告訴我缺少什麼基礎知識。
他們希望你把什麼'array [0]'?選擇是'2'和'5'。 – dasblinkenlight
你的函數是'swaparr(int,int)',但是你傳遞一個數組和一個'int'。那不匹配。同樣,對於'return b;'''b''不是一個int,而是幾個'int's。 –
_'int b [len];'_變長數組無效C++。 –