#include <iostream>
using namespace std;
class amin
{
private:
const int length = 10;
int newArray[length];
int i;
public:
int deleteEvenNumber(int getArray[length])
{
for (i = 0 ; i < length ; i++)
{
if (getArray[i] % 2 == 0)
newArray[i] = getArray[i];
i++;
};
return newArray[length];
};
};
主:
int main()
{
amin manipulateArrays;
int input , i = 0;
const int length = 10;
int mainArray[length];
cout<<"Please enter ten numbers :"<<endl;
for (i = 0 ; i < length ; i++)
{
cin>>input;
mainArray[i] = input;
i++;
};
manipulateArrays.deleteEvenNumber(mainArray[length]);
};
我遇到了这两个错误:
错误C2664:'amin :: deleteEvenNumber':无法将参数1从'int'转换为'int []'
IntelliSense:“int”类型的参数与“int *”类型的参数不兼容
请帮助并向我解释我的错误。
请向我介绍这个问题或这个标题的好教程。
答案 0 :(得分:5)
您的函数deleteEvenNumber()
需要int []
(即int
数组),但是您将int
传递给它。
manipulateArrays.deleteEvenNumber(mainArray[length]);
^^^^^^^^^^^^^^^^^
|
this is an 'int', not an 'int []'
要将length
传递给函数,您可能需要将函数更改为
int deleteEvenNumber(int getArray[], int length)
然后称之为:
manipulateArrays.deleteEvenNumber(mainArray, length);
或者,您可以改为使用vector<int> mainArray
,然后您可以轻松地通过mainArray.size()
获取其长度。
答案 1 :(得分:1)
你的函数将int[]
(数组)作为参数
int deleteEvenNumber(int getArray[length])
但你传递的是int
manipulateArrays.deleteEvenNumber(mainArray[length]);