hurry!定义学生结构体,每个学生数据包括学号姓名及高数英语…

用c++(不是c)编写
定义学生结构体,每个学生数据包括学号姓名高数英语计算机三门课的成绩。

img

需要子函数么

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

typedef struct _student
{
    int num;
    string name;
    float score[3];
    float avg;
}student;

int main()
{
    student stu[10],t;
    int i,j;
    for(i=0;i<10;i++)
    {
        cout<<"输入第"<<i+1<<"个学生信息:"<<endl;
        cin>>stu[i].num>>stu[i].name>>stu[i].score[0]>>stu[i].score[1]>>stu[i].score[2];
        stu[i].avg = (stu[i].score[0] + stu[i].score[1] + stu[i].score[2])/3;
    }
    for(i=0;i<9;i++)
        for(j=0;j<9-i;j++)
        {
            if(stu[j].avg < stu[j+1].avg)
            {
                t = stu[j];
                stu[j] = stu[j+1];
                stu[j+1] = t;
            }
        }
    for(i=0;i<10;i++)
    {
        cout<<stu[i].num<<" "<<stu[i].name<<" "<<stu[i].score[0]<<" "<<stu[i].score[1]<<" "<<stu[i].score[2]<<endl;
    }

    for(i=0;i<3;i++)
    {
        int count = 0;
        for(j=0;j<10;j++)
            if(stu[j].score[i]<60)
                count++;
        switch(i)
        {
        case 0:
            cout<<"高数不及格人数:"<<count<<endl;
            break;
        case 1:
            cout<<"英语不及格人数:"<<count<<endl;
            break;
        case 2:
            cout<<"计算机不及格人数:"<<count<<endl;
            break;
        }
    }
    
    return 0;
}

题主是否还有需要,可编写源码并指导交流

我就按60分不及格

#include <bits/stdc++.h>
using namespace std;
struct stu
{
    string name;
    int id,math,english,computer;
    double ping;
};
bool cmp(stu a,stu b)
{
    return a.ping>b.ping;
}
int main()
{
    stu x[10];
    int s[10],bjg[3]={};
    for(int i=0;i<10;i++)
    {
        cin>>x[i].id>>x[i].name>>x[i].math>>x[i].english>>x[i].computer;
        x[i].ping=((double)x[i].math+x[i].english+x[i].computer)/3.0;
        if(x[i].math<60) bjg[0]++; //数学不及格
        if(x[i].english<60) bjg[1]++; //英语
        if(x[i].computer<60) bjg[2]++; //计算机
    }
    sort(x,x+10,cmp);   //用sort函数排序
    cout<<" 排序后的学生学号、姓名如下"<<'\n';
    for(int i=0;i<10;i++)
    {
        cout<<x[i].id<<" 号 "<<x[i].name<<'\n';
    }
    cout<<" 高数不及格人数:"<<bjg[0]<<'\n'<<" 英语不及格人数:"<<bjg[1]<<'\n'<<" 计算机不及格人数:"<<bjg[2];
    return 0;
}