结构体数组 输入 输出 排序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;
}
}