编写成绩排序程序。按学生的序号输入学生的成绩,按照分数由高到低的顺序输出学生

2024-12-16 11:08:08
推荐回答(3个)
回答1:

#include
struct std //定义学生结构体,包含学好number,成绩score,名次mc
{
int number;
int score;
int mc;
};
#define N 100
int main()
{
int i,j,max,num;
static int t=1;
struct std stduent[N],temp;
cin>>max;
for(i=0;i {
cin>>stduent[i].number;
cin>>stduent[i].score;
}
for(i=0;i {
for(j=0;j if(stduent[j].score {
temp=stduent[j];
stduent[j]=stduent[j+1];
stduent[j+1]=temp;
}
}
for(i=0;i {
if(stduent[i].score>stduent[i+1].score)
{
stduent[i].mc=t++;
stduent[i+1].mc=t;
}
else if(stduent[i].score=stduent[i+1].score)
{
stduent[i].mc=t;
stduent[max-1].mc=t;
}
}
cout<<" 成绩 "<<" 学号 "<<" 名次 "< for(i=0;i cout<<" "< cout<<"******************************************************************************"< for(i=1;i<=stduent[max-1].mc;i++) //输出相同名次的人数和学号,同名次的学号输出在同一行中,一行最多输出10个学号
{
num=0;
for(j=i-1;j<=max-1;j++)
{
if(i==stduent[j].mc)
{
num++;
cout< }
if(0==num%10) cout< }
cout<<"第"< }
return 0;
}

回答2:

#include
struct
std
//定义学生结构体,包含学好number,成绩score,名次mc
{
int
number;
int
score;
int
mc;
};
#define
N
100
int
main()
{
int
i,j,max,num;
static
int
t=1;
struct
std
stduent[N],temp;
cin>>max;
for(i=0;i{
cin>>stduent[i].number;
cin>>stduent[i].score;
}
for(i=0;i//冒泡法排序,从高分到低分
{
for(j=0;jif(stduent[j].score{
temp=stduent[j];
stduent[j]=stduent[j+1];
stduent[j+1]=temp;
}
}
for(i=0;i//通过前面的冒泡法排序,已知成绩从高到低排序,就可以确定学生的名次,成绩相同,名次相同,否侧加一
{
if(stduent[i].score>stduent[i+1].score)
{
stduent[i].mc=t++;
stduent[i+1].mc=t;
}
else
if(stduent[i].score=stduent[i+1].score)
{
stduent[i].mc=t;
stduent[max-1].mc=t;
}
}
cout<<"
成绩
"<<"
学号
"<<"
名次
"<for(i=0;icout<<"
"<"<<
stduent[i].number<<"
"<cout<<"******************************************************************************"<for(i=1;i<=stduent[max-1].mc;i++)
//输出相同名次的人数和学号,同名次的学号输出在同一行中,一行最多输出10个学号
{
num=0;
for(j=i-1;j<=max-1;j++)
{
if(i==stduent[j].mc)
{
num++;
cout<";
}
if(0==num%10)
cout<}
cout<<"第"<}
return
0;
}

回答3:

你有没有对语言的要求,我手头有个C的和VB的