C语言:输入全班同学期末考试各门成绩(包括学号),求出每位同学的总分及平均分,按总

如题所述

#include<stdio.h>
#include<string.h>
int main()
{
 char a[100][20],d[20];//学号
 int n,m,b[100][10],s[100],i,j,t;//n为人数,m为学科数,b为每人每科的成绩,s为每人总分
 float c[100];//每人平均分
 scanf("%d%d",&n,&m);//输入人数,学科数
 for(i=0;i<n;i++)
 {
  s[i]=0;
  scanf("%s",a[i]);//输入学号
  for(j=0;j<m;j++)
  {
   scanf("%d",&b[i][j]);//输入成绩
   s[i]=s[i]+b[i][j];//同时计算总分
  }
  c[i]=s[i]*1.0/m;//平均分
 }
 for(i=0;i<n-1;i++)
 {
  for(j=i+1;j<n;j++)
  {
   if(s[i]<s[j])//排名
   {
    t=s[i];
    s[i]=s[j];
    s[j]=t;
    strcpy(d,a[i]);
    strcpy(a[i],a[j]);
    strcpy(a[j],d);
   }
   if(s[i]==s[j])//分数相同根据学号排名
   {
    if(strcmp(a[i],a[j])>0)
    {
     strcpy(d,a[i]);
     strcpy(a[i],a[j]);
     strcpy(a[j],d);
    }
   }
  }
 }
 for(i=0;i<n;i++)
 {
  printf("%d\t%s\t%d\t%.2f\n",i+1,a[i],s[i],c[i]);//排名 学号 总分 平均分
 }
}

追问

不要return 0吗?

不要return 0吗?

不要return 0吗?

追答

最好加上,不写也没关系

温馨提示:答案为网友推荐,仅供参考
相似回答