读书人

为什么输出double数值结果却是16进制数

发布时间: 2013-08-01 15:23:18 作者: rapoo

为何输出double数值结果却是16进制数
#include <iostream>
using namespace std;
double Average(double dbGradeList[],int nLength)
{
double sum = 0;
for(int i = 0;i<nLength;i++)
{
sum = sum + dbGradeList[i];
}

return sum/nLength;
}

double MaxGrade(double dbGradeList[],int nLength)
{
double tem = dbGradeList[0];
for(int i = 1;i<nLength;i++)
{
if(tem<dbGradeList[i])
{
tem = dbGradeList[i];
}
}
return tem;
}
double MinGrade(double dbGradeList[],int nLength)
{
double tem = dbGradeList[0];
for(int i = 1;i<nLength;i++)
{
if(tem>dbGradeList[i])
{
tem = dbGradeList[i];
}
}
return tem;
}


int main(int argc,char* argv[])
{
double dbGradeList[] = {87.4,98.8,56,78.8,68.5,91.0,74.9,89.0};
int nLength = sizeof(dbGradeList)/sizeof(double);
double dbAverage = Average(dbGradeList,nLength);
double dbMaxGrade = MaxGrade(dbGradeList,nLength);
double dbMinGrade = MinGrade(dbGradeList,nLength);
cout<<"平均成绩 "<<dbAverage<<endl;
cout<<"最高成绩 "<<MaxGrade<<endl;
cout<<"最低成绩 "<<MinGrade<<endl;
return 0;
}

运行结果:
平均成绩 80.55
最高成绩 004111AE
最低成绩 00411181
请按任意键继续. . .


[解决办法]
下面这样也可以,不过会多调用一次MaxGrade和MinGrade:

cout<<"最高成绩 "<<MaxGrade(dbGradeList,nLength)<<endl;
cout<<"最低成绩 "<<MinGrade(dbGradeList,nLength)<<endl;


函数要加上(参数列表)才是调用函数,否则就只代表MaxGrade和MinGrade这两个函数,在输出时会转换为函数指针。

读书人网 >C++

热点推荐