22.学生管理系统
作者:
knight9654
,
2022-12-06 11:21:15
,
所有人可见
,
阅读 220
struct student{
int num;
char name[10];
int computer,english,math;
double average;
};
int main(){
int i,n;
struct student max,stu; //定义max和stu为结构体类型 ,复制一份保存平均值
scanf("%d",&n);
for(i = 1;i<=n;i++){
printf("%d",i);
scanf("%d%s%d%d%d",&stu.num,stu.name,&stu.math,&stu.english,&stu.computer);//引用
stu.average=(stu.math + stu.english + stu.computer)/3.0;
if(i == 1){//要是只有一个人,就不用复制了
max = stu;
}else if(max.average < stu.average){//把算的值给max
max = stu;
}
}
printf("num %d name %s average %.2lf ",max.num,max.name,max.average);
}
5 学生成绩排序
struct student students[50];//结构体数组
for(int i = 0;i<n;i++){
scanf("%d",&student[i].average);
}
for (i = 0;i<n-1;i++){
index = i;
for(j = i+1;j<n;j++){
if(students[j].average >students[index].average){
index = j;
}
}
temp = students[index];
students[index] = students[i];
students[i] = temp;
}
学生修改成绩
int update(struct student *p,int n,int num,int course,int score){
int i,pos;//*p是结构体数组指针
for(i = 0;i<n;i++,p++){
if(p->num == num)break;//
}
if(i<n){
switch(course){
case 1: p->math = score;break;//结构体数组指针
case 2: p->english = score;break;
case 3: p->computer = score;break;
}
pos = i;
}else{
pos = -1;
}
return pos;
}