【发布时间】:2011-10-06 02:07:18
【问题描述】:
我希望我知道这是错误的,但我不知道。这是课程:
class Student
{
public:
float grade[10];
float averageGrade;
float average();
Student() : averageGrade(0.0f) {}
};
函数如下:
float Student::average()
{
cout << "How many grades would you like to enter? (Up to ten)\n";
float x;
cin >> x;
cout << "What is your first grade?";
cin >> grade[0];
for (int i = 1; i < x; i++)
{
cout << "What is the next number?\n";
cin >> grade[i];
}
averageGrade = accumulate(grade, grade+10, 0.0);
averageGrade = averageGrade / x;
return averageGrade;
}
这是主要的:
int main()
{
Student s;
s.average();
cout << s.averageGrade;
system ("PAUSE");
return 0;
}
所以每当它输出 s.averageGrade 时,我都会得到看起来像内存地址或其他东西的东西。编译时没有错误。
这是输出:
1>------ Build started: Project: Weapons, Configuration: Debug Win32 ------
1>Compiling...
1>weapon.cpp
1>c:\users\hastudent\documents\visual studio 2008\projects\weapons\weapons\weapon.cpp(31) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
1>Linking...
1>Embedding manifest...
1>Build log was saved at "file://c:\Users\HAStudent\Documents\Visual Studio 2008\Projects\Weapons\Weapons\Debug\BuildLog.htm"
1>Weapons - 0 error(s), 1 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
【问题讨论】:
-
accumulate() 有什么作用?可以发一下出处吗?
-
除了
system("PAUSE")——不知道那里发生了什么! -- 对我来说看起来不错,应该可以正常工作。 -
@Kevin --
accumulate()在<numeric>中,它是标准库的一部分。
标签: c++ user-experience