这个代码怎么改才能实现功能
这个代码如何改才能实现功能?
#include<stdio.h>
typedef struct cj
{
int no;
char name[8];
int C;
int math;
int eng;
int uausall;
int check;
float count;
}CJ;
void main()
{
CJ s[26];
int i,j;
float yxl,bjgl;
char f;
i=0;
printf("\n 学生成绩信息 \n");
do{
f='\0';
printf("学号:");
scanf("%d",&s[i].no);
printf("姓名:");
scanf("%s",&s[i].name);
printf("C语言:");
scanf("%d",&s[i].C);
printf("高数:");
scanf("%d",&s[i].math);
printf("英语:");
scanf("%d",&s[i].eng);
printf("平时成绩:");
scanf("%d",&s[i].uausall);
printf("考勤成绩:");
scanf("%d",&s[i].check);
s[i].count=(s[i].C+s[i].math+s[i].eng)*0.7+s[i].uausall*0.2+s[i].check*0.1;
printf("是否继续输入?(Y/N)");
while(f!='y'&&f!='Y'&&f!='n'&&f!='N') f=getchar();
i++;
}while(f!='N'&&f!='n');
printf("\n---------------------------------\n");
printf("学号 姓名 C语言 高数 英语 平时成绩 考勤成绩 总成绩");
for(j=0;j<i;j++)
printf("\n%-10d%-10s%-10d%-11d%-12d%-14d%-14d%-8f%",s[j].no,s[j].name,s[j].C,s[j].math,s[j].eng,s[j].uausall,s[j].check,s[j].count);
}
这是我写的 只能实现成绩的输入和输出。这么改才能让总成绩按从大到小排序 并且 将需要补考的同学的名单及各自所需补考的科目显示出来? 我曾想过用若干个函数分别实现后两个功能,可是怎么也不成功 请问代码该怎么写?
------解决方案--------------------
调用个排序算法。需要补考只需要设定个判断,小于60就特殊处理。
参考
http://blog.csdn.net/shan9liang/article/details/7533466
#include<stdio.h>
typedef struct cj
{
int no;
char name[8];
int C;
int math;
int eng;
int uausall;
int check;
float count;
}CJ;
void main()
{
CJ s[26];
int i,j;
float yxl,bjgl;
char f;
i=0;
printf("\n 学生成绩信息 \n");
do{
f='\0';
printf("学号:");
scanf("%d",&s[i].no);
printf("姓名:");
scanf("%s",&s[i].name);
printf("C语言:");
scanf("%d",&s[i].C);
printf("高数:");
scanf("%d",&s[i].math);
printf("英语:");
scanf("%d",&s[i].eng);
printf("平时成绩:");
scanf("%d",&s[i].uausall);
printf("考勤成绩:");
scanf("%d",&s[i].check);
s[i].count=(s[i].C+s[i].math+s[i].eng)*0.7+s[i].uausall*0.2+s[i].check*0.1;
printf("是否继续输入?(Y/N)");
while(f!='y'&&f!='Y'&&f!='n'&&f!='N') f=getchar();
i++;
}while(f!='N'&&f!='n');
printf("\n---------------------------------\n");
printf("学号 姓名 C语言 高数 英语 平时成绩 考勤成绩 总成绩");
for(j=0;j<i;j++)
printf("\n%-10d%-10s%-10d%-11d%-12d%-14d%-14d%-8f%",s[j].no,s[j].name,s[j].C,s[j].math,s[j].eng,s[j].uausall,s[j].check,s[j].count);
}
这是我写的 只能实现成绩的输入和输出。这么改才能让总成绩按从大到小排序 并且 将需要补考的同学的名单及各自所需补考的科目显示出来? 我曾想过用若干个函数分别实现后两个功能,可是怎么也不成功 请问代码该怎么写?
------解决方案--------------------
调用个排序算法。需要补考只需要设定个判断,小于60就特殊处理。
参考
http://blog.csdn.net/shan9liang/article/details/7533466