⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2.c

📁 学生成绩管理 假设有一个班级的学生n人
💻 C
字号:
#include<stdio.h>
#define N 11
struct student
{unsigned long num;
 char name[20];
 float score[4];
}stu[N]={
    {2006001,"笨  蛋",68,78,92,88},
    {2006002,"小  猪",88,75,92,56},
    {2006003,"小  黄",60,100,88.5,98},
    {2006004,"夏  日",56,77,99.5,64},
    {2006005,"春  天",85,60,76,85},
    {2006006,"小  小",89,76,61,72},
    {2006007,"狂  人",64.5,80,56,78},
    {2006008,"李  兵",76,66,71,85},
    {2006009,"华  仔",100,68,99,55},
    {2006010,"霆  锋",68.5,55,100,82},
    {2006011,"杰  伦",74,99,98,98.5}
};
void main()
{
void fun(struct student *,int,int);
float max(struct student *,int,int);
float min(struct student *,int,int);
float ave(struct student *,int,int);
struct student * p;
int i,n;float j,k;
float t;
printf("\n>>>>>>>>>>>>>****学生成绩管理系统****<<<<<<<<<<<<<\n\n");
printf("---------如果想用语文成绩排序,请输入0 \n");
printf("---------如果想用数学成绩排序,请输入1 \n");
printf("---------如果想用英语成绩排序,请输入2 \n");
printf("---------如果想用C++ 成绩排序,请输入3 \n");
scanf("%d",&n);
switch(n)
{case 0:printf("按语文排序:\n");break;
 case 1:printf("按数学排序:\n");break;
 case 2:printf("按英语排序:\n");break;
 case 3:printf("按c++ 排序:\n");break;
 default:printf("error\n");
 }
 p=stu;
printf(" 学号     姓名       语文    数学   英语    C++   \n");
fun(p,N,n);
printf("\n");
printf("*****************************************************\n");
printf("语文     数学     英语      C++  的最高成绩分别是\n");
for(i=1;i<=4;i++)
{
k=max(p,i,N);
printf("%2.1f    ",k);
};
printf("\n");
printf("*****************************************************\n");
printf("语文     数学     英语      C++  的最低成绩分别是\n");
for(i=1;i<=4;i++)
{j=min(p,i,N);
printf("%2.1f     ",j);};
printf("\n");
printf("*****************************************************\n");
printf("语文     数学     英语      C++    的平均成绩分别是\n");
for(i=1;i<=4;i++)
{t=ave(p,i,N);
printf("%2.3f   ",t);};
printf("\n");
printf("*****************************************************\n");
getch();
}

void fun(struct student *p1,int n1,int n2)
{struct student *e,temp,*c;
int i;
e=p1;
for(i=0;i<n1;i++)
{p1=e+i;
for(c=p1+1;c<p1+n1-i;c++)
{if((p1->score[n2])<(c->score[n2]))
{temp=*p1;*p1=*c;*c=temp;};
};
printf("%7ld  %-10s  %-5.1f  %-5.1f  %-5.1f  %-5.1f\n",
p1->num,p1->name,p1->score[0],p1->score[1],p1->score[2],p1->score[3]);};
}
float max(struct student *p1,int a,int b)
{int i;float max;
max=p1->score[a-1];
for(i=0;i<b;i++,p1++)
if(max<p1->score[a-1])
{max=p1->score[a-1];
p1->score[a-1]=max;};
return max;}

float min(struct student *p1,int a,int b)
{int i;float min;
min=p1->score[a-1];
for(i=0;i<b;i++,p1++)
if(min>p1->score[a-1])
{min=p1->score[a-1];
p1->score[a-1]=min;};
return min;
}

float ave(struct student *p1,int a,int b)
{int i;
float average,sum=0;
for(i=0;i<b;i++,p1++)
sum=sum+p1->score[a-1];
average=(float)sum/b;
return average;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -