#include <iostream>
using namespace std;
int main() {
int scores [9] = { 100, 80, 60, 75, 95, 65, 85, 40, 70 };
int total = 0;
for (int i = 0; sizeof(scores); i++) {
total += scores[i];
}
double average = (double) total / sizeof(scores);
cout << average << endl;
cin.get();
return 0;
}
错误消息:TestProject.exe中0x002918F5处抛出异常:0xC0000005:访问冲突读取位置0x003A0000。
此代码存在问题,但我无法找到它。只是试图学习从Java转移的C ++中的数组。感谢。
答案 0 :(得分:2)
sizeof(array)
不返回数组中的元素数,而是返回字节数。它可用于通过sizeof(array) / sizeof(array[0])
获取元素数量(请参阅How do sizeof(arr) / sizeof(arr[0]) work?
中的详细信息)
另外,xyious是正确的,你需要在for循环中提供一个实际的条件,所以你最终
for (int i = 0; i < sizeof(scores) / sizeof(scores[0]); i++) {
答案 1 :(得分:1)
你应该使用std :: vector而不是数组。 Bjarne Stroustrup在他的书中推荐大多数情况下的std :: vectors。
Arrays vs Vectors: Introductory Similarities and Differences