#include?<stdio.h>
#include?<string.h>
#include?<stdlib.h>
#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<b;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<n;i++)
{
for(j=0;j<n;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<n;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<n;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);
}
//想幫妳弄完的,但是有些地方弄不明白妳的思想,而且也沒有那麽多時間幫妳弄這個。現在幫妳改了壹下,可以運行了,但是結果不準確。妳有壹個空函數,不知道妳要幹什麽用的。看妳寫這程序,應該是剛剛學會編程吧,。不過應該比我當年強了,沒事的。多編些就會了。