C++——有一个班4个学生,5门课①求第1门课的平均分②有两门以上课程不及格的学生,输出他们的学号和全部课程成绩和平均成绩③平均成绩在90分以上或全部课程成绩在85分以上的学生。用指针或引用方法处理。

没注释的源代码

#include <iostream>

using namespace std;
void avsco(float *pscore,float *paver);
void avcour1(char(*pcourse)[10],float *pscore);
void fail2(char course[5][10],int num[],float *pscore,float aver[4]);
void good(char course[5][10],int num[4],float *pscore,float aver[4]);
int main()
{
    int i,j,*pnum,num[4];
    float score[4][5],aver[4],*pscore,*paver;
    char course[5][10],(*pcourse)[10];
    cout<<"please input course:"<<endl;
    pcourse=course;
    for(i=0;i<5;i++)
        cin>>course[i];
    cout<<"please input NO.and scores:"<<endl;
    cout<<"NO.";
    for(i=0;i<5;i++)
        cout<<","<<course[i];
    cout<<endl;
    pscore=&score[0][0];
    pnum=&num[0];
    for(i=0;i<4;i++)
    {
        cin>>*(pnum+i);
        for(j=0;j<5;j++)
            cin>>*(pscore+5*i+j);
    }
    paver=&aver[0];
    cout<<endl;
    avsco(pscore,paver);
    avcour1(pcourse,pscore);
    cout<<endl;
    fail2(pcourse,pnum,pscore,paver);
    cout<<endl;
    good(pcourse,pnum,pscore,paver);
    return 0;
}
void avsco(float *pscore,float *paver)
{
    float sum,average;
    for(int i=0;i<4;i++)
    {
        sum=0;
        for(int j=0;j<5;j++)
            sum+=(*(pscore+5*i+j));
        average=sum/5;
        *(paver+i)=average;
    }
}
void avcour1(char(*pcourse)[10],float *pscore)
{
    float sum,averge1;
    sum=0;
    for(int i=0;i<4;i++)
    {
        sum+=(*(pscore+5*i));
    }
    averge1=sum/4;
    cout<<"course 1:"<<*pcourse<<",average score:"<<averge1<<endl;
}
void fail2(char course[5][10],int num[],float *pscore,float aver[4])
{
    cout<<"student who failed in two courses:"<<endl;
    cout<<"NO. ";
    for(int i=0;i<5;i++)
        cout<<course[i]<<" ";
    cout<<" average"<<endl;
    for(int i=0;i<4;i++)
    {
        int label=0;
        for(int j=0;j<5;j++)
            if(*(pscore+5*i+j)<60) label++;
        if(label>=2)
        {
            cout<<num[i]<<"  ";
            for(int k=0;k<5;k++)
                cout<<*(pscore+5*i+k)<<"  ";
            cout<<"  "<<aver[i]<<endl;
        }
    }
}
void good(char course[5][10],int num[4],float *pscore,float aver[4])
{
    cout<<"students whose score is good:"<<endl;
    cout<<"NO. ";
    for(int i=0;i<5;i++)
        cout<<course[i]<<" ";
    cout<<" average"<<endl;
    for(int i=0;i<4;i++)
    {
        int n=0;
        for(int j=0;j<5;j++)
            if(*(pscore+5*i+j)>85) n++;
        if((n==5)||(aver[i]>=90))
        {
            cout<<num[i]<<"  ";
            for(int k=0;k<5;k++)
                cout<<*(pscore+5*i+k)<<"  ";
            cout<<"  "<<aver[i]<<endl;
        }
    }
}
 

猜你喜欢

转载自blog.csdn.net/2303_80770781/article/details/143472294