字符功能,数字到字母等级

时间:2015-03-27 15:31:27

标签: function

我对c ++编程比较陌生,我正在努力学习代码。此代码的目标是获取用户输入的分数并计算平均值,标准偏差并使用char gradeFunction下的计算将其转换为字母等级。当我尝试使用visual studio 2013调试此程序时,我在使用gradefunction时遇到了一些问题。再次,我是编程的新手,因此故障排除错误对我来说非常困难,我将不胜感激任何帮助或建议!到目前为止,该计划看起来像这样。

#include <iostream>
#include <iomanip>
#include <cmath>
#include <string.h>
#include <string>

using namespace std;

void printArray(int Array[], int count);
double average(double scoreTotal, int count);
double stddev(int Array[], int count, double mean);
char gradeFunction(int scores, double stddev, double mean);


int main()
{
    int scores[8];
    int count;
    double scoreTotal = 0;
    int standarddev[8];
    double mean;


    cout << "Enter scores seperated by blanks:" " ";

    for (count = 0; count <= 7; count++)
    {
        cin >> scores[count];
        scoreTotal += scores[count];
        mean = scoreTotal / 8;
    }




    cout << endl;
    cout << "Grade Scores by Student" << endl;
    cout << "Score" "\t" "Grade" << endl;
    cout << "----------------------------------" << endl;

    printArray(scores, 8);
    cout << gradeFunction(scores, stddev, mean);


    cout << endl;
    cout << "The mean is" " "<< fixed << setprecision(1) << average(scoreTotal, count) << endl;
    cout << "The standard deviation is" " " << stddev(scores, count, mean) <<  endl;
    cout << endl;

    system("pause");
    return 0;
}


void printArray(int Array[], int count)
{
    for (int x = 0; x < count; x++)
    {
        cout << fixed << setprecision(1) << Array[x] << endl;
    }
}

char gradeFunction(int scores, double stddev, double mean)
{
    char F, D, C, B, A;

    if (scores <= (mean - (1.5 * stddev)))
        return 'F';
    else if (scores <= (mean - (.5 * stddev)))
        return 'D';
    else if (scores <= (mean + (.5 * stddev)))
        return 'C';
    else if (scores <= (mean + (1.5 * stddev)))
        return 'B';
    else return 'A';

}


double average(double scoreTotal, int count)
{
    return scoreTotal / count;
}

double stddev(int Array[], int count , double mean)
{
    double stddev;
    double sum2 = 0;

    for (int i = 0; i < count; i++)
    {
        sum2 += pow((Array[i] - mean), 2);
    }
    stddev = sqrt(sum2 / (count - 1));
    return stddev;
}

这给我留下的错误信息是......

3   IntelliSense: argument of type "double (*)(int *Array, int count, double mean)" is incompatible with parameter of type "double" 

错误1错误C2664:'char gradeFunction(int [],double,double)':无法将参数2从'double(__ cdecl *)(int [],int,double)'转换为'double'

0 个答案:

没有答案