结构体数组 输入 输出 排序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

typedef struct
{
int ID[1];//数组
int score[4];//数组
char rank[2];//数组
}STUDENT;
STUDENT stus[30]; //定义STUDENT型的stus[30]数组
int i,j,k,n,ave=0;
char str1[]={"输出结果:NUM TS PS ES RS >AVER LEVEL"};
float x=0.6,y=0.2;
void input();//输入
void rank();//计算是否>aver,LEVEL
void sort();//排序
void output();//输出
void main()
{
input();
rank();
sort();
printf("%s\n",str1);
for(i=0;i{
output();
}
printf("\n");

for(i=0;i{
if(stus[i].score[3]<60)
{
printf("%s\n",str1);
printf("不及格的:\n");
break;
}
}
for(i=0;i{
if(stus[i].score[3]<60)
{
output();
}
}
printf("\n");
}

void sort()
{
for(i=0;i{
STUDENT temp;
for(j=i+1;j{
if(stus[i].score[3]{
temp=stus[i];
stus[i]=stus[j];
stus[j]=temp;
}
}
}
}

void output()
{
printf(" ");
printf(" %d",stus[i].ID[0]);
printf("\t");
for(j=0;j<4;j++)
{
printf("%d\t",stus[i].score[j]);
}
for(k=0;k<2;k++)
{
printf(" %c\t",stus[i].rank[k]);
}
printf("\n");
}
void rank()
{
for(i=0;i{
ave=ave+stus[i].score[3];
}
ave=ave/n;

for(i=0;i{
if(stus[i].score[3]>=ave)
{
stus[i].rank[0]='T';
}
else
stus[i].rank[0]='F';
}

for(i=0;i{
switch(stus[i].score[3]/10)
{
case 6:
stus[i].rank[1]='D';break;
case 7:
stus[i].rank[1]='C';break;
case 8:
stus[i].rank[1]='B';break;
case 9:
stus[i].rank[1]='A';break;
default:
stus[i].rank[1]='E';
}
}
}
void input()
{
printf("输入学生数量n=");
scanf("%d",&n);

printf("请输入:NUM TS PS ES\n");
for(i=0;i{
printf(" ");
scanf("%d",&stus[i].ID[0]);
for(j=0;j<3;j++)
{
scanf("%d",&stus[i].score[j]);
}
stus[i].score[3]=stus[i].score[0]*x+stus[i].score[1]*y+stus[i].score[2]*y;
}
}


相关文档
最新文档