在C ++中遇到指针问题

时间:2019-02-26 00:06:06

标签: visual-c++

我正在尝试从函数内部访问数组,但是我得到了 “错误C2065'i':未声明的标识符。”我知道指针出错了。我能够从遇到问题的函数下面的函数中从数组中提取信息,所以我不确定为什么我不能在这里做同样的事情。感谢您的时间。

#include <iostream>
#include <cmath>
using namespace std;

double mean(int size, int* numbers); 
double sDeviation(int numOfScores, int average, int* scores);
int histogram(int numOfScores, int* scores); //<<<This is what I'm having trouble with

int main()
{
int count = 0;
int scores[100];

while (true)
{
    int scoreToBeEntered;
    cout << "Please enter a score: ";
    cin >> scoreToBeEntered;

    if(scoreToBeEntered == NULL)
        cout << "No value entered" << endl;
    else if(scoreToBeEntered != -1)
        scores[count++] = scoreToBeEntered;
    else
        break;
}

for(int i = 9; i >= 0; i--)
    cout << i << "|" << endl;

cout << "SD: " << sDeviation(count, mean(count, scores), scores) << endl;

system("pause");
return 0;
}

int histogram(int numOfScores, int* scores)//this is where the issue starts
{
int* bins = new int[10];
for(int i = 0; i < numOfScores; i++);
    if(scores[i] >= 90) //<<<<This is the undeclared "i"
    {
        bins[9]++;
    }
}


double sDeviation(int numOfScores, int average, int* scores)
{
double deviation = 0;

for (int i = 0; i < numOfScores; i++)
    deviation += pow(scores[i] - average, 2);

return sqrt(deviation / numOfScores);
}

double mean(int size, int* numbers)
{
double sum = 0;

for (int i = 0; i < size; i++)
    sum += numbers[i];

return sum / size;
}

0 个答案:

没有答案