c语言学生成绩管理总分平均分,求C语言写的学生成绩管理系统,要求输入各个学生各科成绩及学号,能求总分,平均分,能对总分,学号排序...

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

a86311940

推荐于 2018.02.18

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:50%    等级:10

已帮助:1968人

程序如下: #include

void main()

{

float student[100][7];

//student[][0]存放学号,student[][1]到student[][4]存放四门成绩,

//student[][5]存放总分,student[][6]存放平均分,student[][7]存放排名

int n,i,j,k,p,t,count,flag;

int a[100],b[100],c[100];

//a[]存放排序后的下标,b[]存放总分(备份),c[]存放排名的数据

printf("输入学生的个数:\n");

scanf("%d",&n);

for(i=0;i<=n-1;i++)

{

printf("输入第%d个学生的学号:",i+1);

scanf("%f",&student[i][0]);

for(j=0,student[i][5]=0;j<=3;j++)

{

printf("输入第%d个学生的第%d门成绩:",i+1,j+1);

scanf("%f",&student[i][j+1]);

student[i][5]+=student[i][j+1]; //计算总分

}

b[i]=student[i][5]; //把总分再赋给b[]数组,以后排序用

student[i][6]=student[i][5]/4; //计算平均分

}

for(i=0;i<=n-2;i++) //对数组b[](即总分)进行排序

for(j=0;j<=n-2-i;j++)

{

if(b[j]

{

t=b[j];

b[j]=b[j+1];

b[j+1]=t;

}

}

for(i=0,k=0;i<=n-1;i++)//用数组a[]取得排序后总分的下标

{

for(j=0,flag=0;j<=n-1;j++)

{

if(b[i]==student[j][5])

{

if(0==k) //如果数组a[]中有零个元素,就把j直接赋给a[]

{

a[k]=j;

k++;

flag=1;

}

else //如果数组a[]中有元素了,则判断

{

for(p=0;p<=k-1;p++)

if(a[p]!=j)

{

a[k]=j;

k++;

flag=1;

break;

}

}

}

if(1==flag)

break;

}

}

for(count=1,i=0;i<=n-1;i++) //对c[](排名)进行处理

{

if(b[i]==b[i+1])

{

c[i]=count;

}

else

if(b[i]>b[i+1])

{

c[i]=count;

count++;

}

}

printf("\n以下是统计结果:\n");

printf("学号 s[1] s[2] s[3] s[4] 总分 平均分 排名\n");

for(i=0;i<=n-1;i++)

{

printf("%.0f\t%.0f\t%.0f\t%.0f\t%.0f\t%.0f\t%f\t%d\n",student[a[i]][0],student[a[i]][1],student[a[i]][2],student[a[i]][3],student[a[i]][4],student[a[i]][5],student[a[i]][6],c[i]);

}

} 有疑问提出

10分享举报

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值