📄 printdata.c
字号:
/*数据显示 */
/*该函数并未对结构体进行实际的排序,只是对它们的下标排序,然后再输出结果*/
void printdata()
{
int t; /*累加变量*/
int i,j; /*循环变量*/
int temp; /*交换时数据的暂存变量*/
int flag[Maxsize]; /*存储欲显示结构体下标*/
for(i=0;i<k;i++) /*初始化数组*/
flag[i]=i;
/*按班级升序排序*/
for(i=0;i<k;i++)
for(j=0;j<k;j++)
if(strcmp(student[flag[i]].Class,student[flag[j]].Class)<0) /*不在同一个班级*/
{
temp=flag[j]; /*交换记录*/
flag[j]=flag[i];
flag[i]=temp;
}
/*按平均分降序排序*/
for(i=0;i<k;i++)
for(j=0;j<k;j++)
if(student[flag[i]].Average>student[flag[j]].Average&&strcmp(student[flag[i]].Class,student[flag[j]].Class)==0) /*在同一个班级且平均分不一样*/
{
temp=flag[j]; /*交换记录*/
flag[j]=flag[i];
flag[i]=temp;
}
/*输出数据*/
for(i=0;i<=k-1;i++)
{
clrscr();
for(i=3;i<75;i++)
{
gotoxy(i,2);
printf("%c",196);
gotoxy(i,23);
printf("%c",196);
}
gotoxy(5,1);
printf("No Name Class Maths English Computer Average\n");
for(i=0;i<k;i++)
{
gotoxy(5,3+i);
printf("%d %s",student[flag[i]].No,student[flag[i]].Name);
for(t=strlen(student[flag[i]].Name)+1;t<16;t++)
printf(" ");
printf("%s %.2f %.2f %.2f %f\n",student[flag[i]].Class,student[flag[i]].Maths,student[flag[i]].English,student[flag[i]].Computer,student[flag[i]].Average);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -