#ifndef _1_H_
#define _1_H_
#define MAX 20
struct Stu
{
int num;
char name[60];
double score;
};
struct Cla
{
struct Stu s[MAX];
int len;
};
void add(struct Stu k ,struct Cla*p,struct Stu *p1 );
void out_put(struct Stu *p,struct Cla *p1,struct Cla g);
void out_max(struct Stu *p,struct Cla *p1);
void score_sort(struct Stu*p,struct Cla *p1);
void stu_search(struct Stu*p,struct Cla*p1);
#endif
*******************************************************************************************
#include <stdio.h>
#include "1.h"
#include<string.h>
void add(struct Stu k ,struct Cla *p,struct Stu *p1)
{
if(p->len>=MAX)
{
printf("输入失败\n");
return;
}
p1[p->len]=k;
p->s[p->len]=k;
(p-> len)++;
printf("输入成功\n");
}
void out_put(struct Stu *p ,struct Cla *p1,struct Cla g)
{
printf("学号\t姓名\t\t成绩\n");
for(int i=0;i<((p1->len));i++)
{
printf("%d\t%s\t\t%.2lf\n",g.s[i].num,g.s[i].name,g.s[i].score);
}
}
void out_max(struct Stu *p,struct Cla *p1)
{
struct Stu temp =p[0];
for(int i=0;i<p1->len;i++)
{
if(temp.score<p[i].score)
{
temp =p[i];
}
}
printf("分数最高的学生信息为:%d\t%s\t\t%.2lf\n",temp.num,temp.name,temp.score);
}
void score_sort(struct Stu *p,struct Cla *p1)
{
struct Stu temp;
for(int i=0;i<((p1->len)-1);i++)
{
for(int j=0;j<((p1->len)-i-1);j++)
{
if(p[j].score>p[j+1].score)
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}
printf("按分数排序为:\n");
printf("学号\t姓名\t\t成绩\n");
for(int i=0;i<p1->len;i++)
{
printf("%d\t%s\t\t%.2lf\n",p[i].num,p[i].name,p[i].score);
}
}
void stu_search(struct Stu *p,struct Cla *p1)
{
char a[10]="";
printf("请输入需要查找的学生姓名:\n");
getchar();
gets(a);
for(int i=0;i<p1->len;i++)
{
if(strcmp(p[i].name,a)==0)
{
printf("存在\n");
break;
}
else if(i==p1->len-1)
{
printf("不存在\n");
}
}
}
*******************************************************************************
#include <stdio.h>
#include "1.h"
#include<string.h>
int main(int argc, const char *argv[])
{
struct Cla g;
g.len=0;
struct Stu s[MAX];
for (;; )
{
struct Stu k;
printf("请输入学生的学号:\t");
scanf("%d",&k.num);
printf("请输入学生的姓名:\t");
scanf("%s",k.name);
printf("请输入学生的成绩:\t");
scanf("%lf",&k.score);
add(k,&g,s);
char jud;
printf("继续输入回复Y,停止输入回复N\n");
getchar();
scanf("%c",&jud);
if(jud=='n'||jud=='N')
{
break;
}
}
out_put(s,&g,g);
printf("********************************\n");
out_max(s,&g);
printf("********************************\n");
score_sort(s,&g);
printf("********************************\n");
stu_search(s,&g);
return 0;
}