导航菜单
首页 >  » 正文

给成绩总分排序,如总分相同,则按语文排,语文相同,则按数学排,请高手给一个函数或公式,只要公式哦! 假设有五位同学四门功课的成绩如下,现要求出每位同学的总分,并按照总分从高到低的顺序进行排序,输出其名次,如果总分相同,则按语文和数学分数之和高者排前,低者排后,但名次一样。

给成绩总分排序,如总分相同,则按语文排,语文相同,则按数学排,请高手给一个函数或公式,只要公式哦!

在总分右边一列(假设为E列)输入"=总分*1000000+语文*1000+数学*1+等等*0.001“
也就是说把总分扩大,总分大的就大,总分相等就以语文大的为大,语文还相等就以数学,就此类推,最后还一样大,还可以用座号进行排呢。
然后在名次列输入“=RANK(E2,E$3:E$100)”
这种方法比较简单好记。

假设有五位同学四门功课的成绩如下,现要求出每位同学的总分,并按照总分从高到低的顺序进行排序,输出其名次,如果总分相同,则按语文和数学分数之和高者排前,低者排后,但名次一样。

#include <stdio.h> void main() { int i,j; int a[5][4]={120,130,110,280,110,120,105,290, 108,128,120,278,112,135,122,286,100,120,108,276}; float gpjf=0,zf=0; //各门功课的平均分和总分的定义 for (i=0;i<5;++i) { for (j=0;j<4;++j) zf=a[i][j]+zf; printf("总分为:%.2f 平均分为:%.2f ",zf,zf/4); zf=0; } for (j=0;j<4;j++) { for (i=0;i<5;i++) gpjf=a[i][j]+gpjf; printf("各门功课的平均分为:%.2f ",gpjf/5); gpjf=0; } }

统计每个学生的选课门数和考试总成绩,并按选课门数的降序排列

select
课程,
count(课程编号)
as
选课人数
,
avg(成绩)
as
平均成绩
from

group
by
课程编号

编写程序,从键盘输入6 名学生的5 门成绩,分别统计出每个学生的平均成绩。

#include <stdio.h>
main()
{
int i,j,a[6][5];
float b;
for(i=0;i<6;i++)
{b=0;
for(j=0;j<5;j++)
{
printf("请输入第%d个学生的第%d门成绩:",i+1,j+1);
scanf("%d",&a[i][j]);//数组第a用于存放成绩
b=b+a[i][j];
}
b=b/5;
printf("第%d个学生的平均成绩:%.2f ",i+1,b);
}
return 0;
}
我帮你改了一下每输入完一个学生的成绩就输出一个成绩来。不知道和你的想法是不是一样.

C语言。在歌手大赛中,有10个评委为参赛选手打分

#include <stdio.h>
int main()
{
float a[10],max,min,sum;
int i,aver;
max=0;
min=100;
sum=0;
for(i=0;i<10;i++)
{
scanf("%f",&a[i]);
if(a[i]>max) 
max=a[i];
if(a[i]<min)
min=a[i];
sum+=a[i];
}
aver = (sum-max-min)/8 ;
printf("aver:%d ",aver);
return 0;
}

C语言编程,从键盘输入10个学生的成绩,由高到低排序输出成绩。

//如果只有成绩信息就可以用下面的代码

//如果还需要加入学号,姓名之类的信息,可以用结构体然后对成绩排序即可

#include"stdio.h"

int main()

{

int  d[10]={0},i,j,t;//数组d存放10个学生的成绩

for(i=0;i<10;i++)//输入10个成绩(空格分开)

scanf("%d",&d[i]);

for(i=0;i<9;i++)//排序 for(j=i+1;j<10;j++) if(d[i]<d[j]) {

t=d[i],d[i]=d[j],d[j]=t;

}

for(i=0;i<10;i++)//输出10个成绩

printf("%d  ",d[i]);

getch();

return 0;

}

相关推荐: