数组类 - 错误:无法将参数从 'double' 转换为 'int'
Array Classes - Error: Cannot Convert Parameter from 'double' to 'int'
我之前向社区询问过这个程序,但我遇到了最后一个问题,在互联网上快速搜索后发现这是一个常见的问题。
下面是我的代码,后面是我的构建输出
分级器.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;
}
驱动程序.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
}
我的错误输出如下
------生成开始:项目:Grader,配置:Debug Win32------生成开始于2013年7月29日凌晨2:55:05。InitializeBuildStatus:正在触摸"Debug\Grader.unfailfulbuild"。ClCompile:Grader.cpp
Driver.cpp\psf\home\documents\visualstudio2010\projects\grader\grader\driver.cpp(12):错误C2664:"Grader::addScores":无法将参数1从"double[5]"转换为'int[]'指向的类型是不相关的;转换需要reinterpre_cast、C样式转换或函数样式转换\psf\home\documents\visualstudio2010\projects\grader\grader\driver.cpp(22):错误C2664:"Grader::addScores":无法将参数1从"double[4]"转换为'int[]'指向的类型是不相关的;转换需要reinterpret_cast、C样式强制转换或函数样式强制转换生成密码生成失败。
运行时间00:00:01.84==========生成:0成功,1失败,0最新,0跳过==========
有什么想法吗?
double d[5]= {99,70,85,93,84};
double e[4]= {100,81,60,91};
您将d/e
定义为double,但是Grader::addScores
只采用int类型。
void Grader::addScores( int scores[], int size )
g.addScores( e, 4 );
如果您不想使d/e
加倍,请将其更改为int类型:
int d[5]= {99,70,85,93,84};
int e[4]= {100,81,60,91};
double d[5]= {99,70,85,93,84};
double e[4]= {100,81,60,91};
使其成为内部
- C++在数学计算中将double转换为int
- 错误:无法将"<lambda(double)>"转换为"double(*)(double)"
- 如何将 Java double[][] 转换为 C++ <vector<vector>> JNI?
- 将 std::vector<boost::optional<double>> 转换为 std::vector<double>
- 将 double* 转换为 std::vector<double> (C++)
- 无法将复数<double>转换为双精度
- "double(*)(string, double, double)"尝试传递函数C++时"double"转换错误
- 从 double* 转换为 int 会失去精度
- 从'double'转换为'int'需要缩小转换范围
- 错误:无法将参数“1”的“double*”转换为“double”,错误:数组下标的类型“double[double]”无
- C 编译器从Double转换为INT
- 将“ double*”转换为“ boost :: Any*”
- 警告 C4244:'argument':从 'double' 转换为"浮点数",可能会丢失数据 - C++
- 当我使用模板时,编译器无法将函数的返回类型从 double 转换为 int
- 将double转换为LSBF(小Endian)十六进制字符串
- JNI在将Java double转换为jdouble时出现问题
- 无法将double转换为字符串
- 警告 C4244:"参数":从"double"转换为"int",可能会丢失数据
- C++无法将'long double'转换为'long double*',因为参数'1'为"long
- 在C++中,将double转换为long的类型返回了不正确的值