我早前向社区咨询过这个程序,但我遇到了最后一个问题,并且在互联网上进行了快速搜索,结果显示它是常见的一个。数组类 - 错误:无法将参数从'double'转换为'int'
以下其次是我的构建输出我的代码
Grader.cpp
#include <iostream>
#define MAXSIZE 100
#include "Grader.h"
Grader::Grader(){
my_Values [MAXSIZE] = 0;
my_ValuesSeenSoFar = 0;
}
void Grader::addScore(int score){
if(my_ValuesSeenSoFar < MAXSIZE)
my_Values[my_ValuesSeenSoFar++] = score;
}
void Grader::addScores(int scores[], int size){
for(int i=0; (i < size) && (my_ValuesSeenSoFar < MAXSIZE) ; i++)
my_Values[my_ValuesSeenSoFar++] = scores[i];
}
void Grader::clear(){
for(int i=0; i < MAXSIZE ; i++)
my_Values[i] = 0;
}
int Grader::findBiggest() const{
int max = my_Values[0];
for(int i=1; i < my_ValuesSeenSoFar ; i++)
{
if(my_Values[i] > max)
max = my_Values[i];
}
return max;
}
int Grader::findSmallest() const{
int min = my_Values[0];
for(int i=1; i < my_ValuesSeenSoFar ; i++)
{
if(my_Values[i] < min)
min = my_Values[i];
}
return min;
}
Driver.cpp
#include <iostream>
#include "Grader.h"
using namespace std;
int main()
{
Grader g;
double d[5]= {99,70,85,93,84};
double e[4]= {100,81,60,91};
g.addScore(75);
g.addScore(82);
g.addScores(d, 5);
cout << "Best Score = " << g.findBiggest() << endl;
/// should give value 99
cout << "Worst Score = " << g.findSmallest() << endl;
/// should give value 70
g.clear();
g.addScore(50);
g.addScore(74);
g.addScores(e, 4);
cout << "Best Score = " << g.findBiggest() << endl;
/// should give value 100
cout << "Worst Score = " << g.findSmallest() << endl;
/// should give value 50
}
而且我的错误输出如下
------ Build started: Project: Grader, Configuration: Debug Win32 ------ Build started 7/29/2013 2:55:05 AM. InitializeBuildStatus: Touching "Debug\Grader.unsuccessfulbuild". ClCompile: Grader.cpp
Driver.cpp \psf\home\documents\visual studio 2010\projects\grader\grader\driver.cpp(12): error C2664: 'Grader::addScores' : cannot convert parameter 1 from 'double [5]' to 'int []' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast \psf\home\documents\visual studio 2010\projects\grader\grader\driver.cpp(22): error C2664: 'Grader::addScores' : cannot convert parameter 1 from 'double [4]' to 'int []' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast Generating Code...Build FAILED.
Time Elapsed 00:00:01.84 ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
任何想法?
你逝去的双阵列,其期待的int数组功能。 – Jack
@Jack我的印象是我无法更改driver.cpp代码---但是,在仔细检查下,项目没有明确说这是禁止的 - 在我的假设下,显然,我忽略了这个明显的解决方案 – rezivor
请喜欢/接受你认为有用的答案。刚刚提到,因为你是新来的。 – Jack