#include
#include
#include
#define max 1000
void table()
{
printf("/*********************************************/\n");
printf("/**********欢迎登陆学生成绩查询系统***********/\n");
printf("/*********************************************/\n");
}
struct sdu
{
char name[8];
char id[8];
int chinese;
int math;
int english;
int average;
int total;
};
struct sdu students[max];/**********学生的数据***********/
int a;/*************实际人数*****************************/
void input()
{
int i;
int b;
printf("学生的人数:");
scanf("%i",&a);
b=a+1;
for(i=1;i
{
printf("\n输入学生学号:");
scanf("%s",students[i].id);
printf("\n输入学生姓名:");
scanf("%s",students[i].name);
printf("\n输入学生的语文成绩:");
scanf("%d",&students[i].chinese);
printf("\n输入学生的数学成绩:");
scanf("%d",&students[i].math);
printf("\n输入学生的英语成绩:");
scanf("%d",&students[i].english);
students[i].total=(students[i].chinese+students[i].math+students[i].english);
students[i].average=students[i].total/3;
}
}/*********学生成绩的录入***************/
void sort(struct sdu array[],int n)
{
int i;
int j;
for(i=0;i { for(j=0;j { if (array[i].total> array[j+1].total) { int d= array[i].total; array[i].total=array[j+1].total; array[j+1].total=d; } } } printf("成绩排名:\n"); for(i=0;i { printf("%d\n",array[i+1]); } } void fenbu(struct sdu array[],int n) { int i,sum1=0,sum2=0,sum3=0,sum4=0; for(i=0;i { if (array[i].average>89) sum1=sum1+1; if (array[i].average>74) sum2=sum2+1; if (array[i].average>59) sum3=sum3+1; if (array[i].average>0) sum4=sum4+1; } printf("优秀的人数:\n"); printf("%d\n",sum1); printf("良的人数:\n"); printf("%d\n",sum2); printf("及格人数:\n"); printf("%d\n",sum3); printf("不及格人数:\n"); printf("%d\n",sum4); } void unreach(struct sdu array[],int n) { } void main() { table(); input(); sort(students, a); fenbu(students, a); } //想帮你弄完的,但是有些地方弄不明白你的思想,而且也没有那么多时间帮你弄这个。现在帮你改了一下,可以运行了,但是结果不准确。你有一个空函数,不知道你要干什么用的。看你写这程序,应该是刚刚学会编程吧,。不过应该比我当年强了,没事的。多编些就会了。
#include
#include
#include
#define MAX 1000 //与库中定义的max宏冲突
void table()
{
printf("/*********************************************/\n");
printf("/**********欢迎登陆学生成绩查询系统***********/\n");
printf("/*********************************************/\n");
}
struct sdu
{
char name[8];
char id[8];
int chinese;
int math;
int english;
int average;
int total;
};
struct sdu students[MAX];/**********学生的数据***********/
int a;/*************实际人数*****************************/
void input()
{
int i;
int b;
b=a+1;
printf("学生的人数:");
scanf("%d",&a);
for(i=1;i {
printf("\n输入学生学号:");
scanf("%s",students[i].id);
printf("\n输入学生姓名:");
scanf("%s",students[i].name);
printf("\n输入学生的语文成绩:");
scanf("%d",&students[i].chinese);
printf("\n输入学生的数学成绩:");
scanf("%d",&students[i].math);
printf("\n输入学生的英语成绩:");
scanf("%d",&students[i].english);
students[i].total=(students[i].chinese+students[i].math+students[i].english);
students[i].average=students[i].total/3;
}
}/*********学生成绩的录入***************/
void sort(struct sdu array[],int n)
{
int i;
int j;
int d; //添加定义
for(i=0;i
for(j=0;j
if(array[i].total> array[j+1].total)
{
d= array[i].total;
array[i].total=array[j+1].total;
array[j+1].total=d;
}
}
}
printf("成绩排名:\n");
for(i=0;i
printf("%d",array[i+1]);
}
}
void fenbu(struct sdu array[],int n)
{
int i,sum1,sum2,sum3,sum4;
for(i=0;i
if (array[i].average>89) //加括号
sum1=sum1+1;
if( array[i].average>74)
sum2=sum2+1;
if (array[i].average>59)
sum3=sum3+1;
if (array[i].average>0)
sum4=sum4+1;
}
printf("优秀的人数:\n");
printf("%d",sum1);
printf("良的人数:\n");
printf("%d",sum2);
printf("及格人数:\n");
printf("%d",sum3);
printf("不及格人数:\n");
printf("%d",sum4);
}
void unreach(struct sdu array[],int n)
{
}
学习一下。