-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++。 –