2016-02-05 317 views
1
// Input : Student name, 1 test grade perstudent 
// Output: Student Averages, Class Averages, Top Student Last Student 

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

float CalcAvgClassGrade(int s1, int s2, int s3, int s4, int s5) 

{ 
    float avg, sum; 

    // Sum grades, and get avg 
    sum = s1 + s2 + s3 + s4 + s5; 
    avg = sum/2; 
    return avg; 
} 

string getMax(int s1, int s2, int s3, int s4, int s5, string n1, string n2, string n3, string n4, string n5) 
{ 
    float max; 
    string maxName; 
    // Compares each grade to find the max 
    max = s1; 
    maxName = n1; 
    if (max < s2) 
    { 
     max = s2; 
     maxName = n2; 
    } 
    if (max < s3) 
    { 
     max = s3; 
     maxName = n3; 
    } 
    if (max < s4) 
    { 
     max = s4; 
     maxName = n4; 
    } 
    if (max < s5) 
    { 
     max = s5; 
     maxName = n5; 
    } 


    return maxName; 

} 

string getMin(int s1, int s2, int s3, int s4, int s5, string n1, string n2, string n3, string n4, string n5) 
{ 

    float min; 
    string minName; 
    // Compares each grade to find the min 
    min = s1; 
    minName = n1; 
    if (min < s2) 
    { 
     min = s2; 
     minName = n2; 
    } 
    if (min < s3) 
    { 
     min = s3; 
     minName = n3; 
    } 
    if (min < s4); 
    { 
     min = s4; 
     minName = n4; 
    } 
    if (min < s5) 
    { 
     min = s5; 
     minName = n5; 
    } 
    return minName; 

} 



int main() 
{ 
    string student1, student2, student3, student4, student5; 
    int student1Grade, student2Grade, student3Grade, student4Grade, student5Grade; 

    // Enter Student Names; 
    cout << "Enter Student Name: "; 
    cin >> student1; 
    cout << "Enter Student Grade: "; 
    cin >> student1Grade; 

    cout << "Enter Student Name: "; 
    cin >> student2; 
    cout << "Enter Student Grade: "; 
    cin >> student2Grade; 

    cout << "Enter Student Name: "; 
    cin >> student3; 
    cout << "Enter Student Grade: "; 
    cin >> student3Grade; 

    cout << "Enter Student Name: "; 
    cin >> student4; 
    cout << "Enter Student Grade: "; 
    cin >> student4Grade; 


    cout <<"Enter Student Name : " ; 
    cin >> student5; 
    cout <<"Enter Student Grade : " ; 
    cin >> student5Grade; 
     // Class AVG 
    float classAvg = CalcAvgClassGrade(student1Grade, student2Grade, student3Grade, student4Grade, student5Grade); 

    cout << "Class average = " << classAvg; 

     // MAX GRADE 

    string classMax = getMax(student1Grade, student2Grade, student3Grade, student4Grade, student5Grade, student1, student2, student3, student4, student5); 

    cout << classMax << " has the highest grade in the class"; 

     // Min Grade 

    string classMin = getMin(student1Grade, student2Grade, student3Grade, student4Grade, student5Grade, student1, student2, student3, student4, student5); 
    cout << classMin << " has the lowest grade in the class"; 

} 

这是我的第一个C++程序。我在格式化cout语句时遇到了困难,我认为我的数学中存在一些错误,因为我不断获得像2.56 x e这样的值。任何建议表示赞赏,到目前为止,我已经学习了很多关于语法的知识。我不认为我的语法在cout语句上是正确的。我需要使用endl吗?计算平均值最大值和最小值C++

+1

*我无法格式化的cout语句*您应详细说明那些麻烦是什么。 – NathanOliver

+2

'avg = sum/2;' - 你确定这个计算吗? –

+0

你是否熟悉数组或向量?当你有类似的变量名称只有数字后缀不同时,你应该使用数组或向量。 –

回答

0

我在这里看到了一个错误:

string getMin(int s1, int s2, int s3, int s4, int s5, string n1, string n2, string n3, string n4, string n5) 
{ 

    float min; 
    string minName; 
    // Compares each grade to find the min 
    min = s1; 
    minName = n1; 
    if (min < s2) 
    { 
     min = s2; 
     minName = n2; 
    } 
    if (min < s3) 
    { 
     min = s3; 
     minName = n3; 
    } 
    if (min < s4); 
    { 
     min = s4; 
     minName = n4; 
    } 
    if (min < s5) 
    { 
     min = s5; 
     minName = n5; 
    } 
    return minName; 

} 

你必须使用:>代替<

+0

@NathanOliver:没有给出if分支中的逻辑。它目前发现最大。 –

+0

@MooingDuck啊是的。别管我。 – NathanOliver

1

这个if (min < s2)等情况下是错误的。他们应该是if (min > s2)

avg = sum/2是错误的。应该是avg = sum/5

还有<< std::endl;<< "\n";在您最后的cout语句的末尾生成一个新行。

1

你有5个学生,你必须在5名学生计算平均:

float CalcAvgClassGrade(int s1, int s2, int s3, int s4, int s5) 
{ 
    float avg, sum; 
    // Sum grades, and get avg 
    sum = s1 + s2 + s3 + s4 + s5; 
    avg = sum/5; //math: average on 5 students 
    return avg; 
} 

getMin方法你比较等级和min错误。

如果任何数小于min,以这个数字作为新分钟

所以把所有< s到>getMin方法

相关问题