用c++(不是c)编写
定义学生结构体,每个学生数据包括学号姓名高数英语计算机三门课的成绩。
需要子函数么
#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;
}