标题:求助 一个学生成绩 排名的程序
只看楼主
qweewqazsx
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-7-16
 问题点数:0 回复次数:1 
求助 一个学生成绩 排名的程序
学习成绩排名。有M个班的学生参加某门课程的考试,每个班级最多有N个学生。基本要求:
1)每个班的学生记录按学号顺序排列,每个学生纪录包括排列名次、学号和成绩;
2)输入某个学生的学号,输出其在本班的排名情况,具有相同成绩的名次相同;
3)输出全体考生的排名情况。
测试数据:
假定有7个班,每个班级学生人数为12人,学号=班号+学生在本班中的序号,班号依次为1,2,…,7;成绩是由计算机随机产生的50至100之间的整数。

#include<stdio.h>
#include<string.h>
#define C 7;
#define N 12;
struct student
{int id;
int score;
int crang;
int rang;
}stu ;
struct cs
{int x;
struct student stu[];
}clas[C];
void id()
{int i,j;
for(i=0;i<7;i++)
{clas[i].x=i+1;
for(j=0;j<12;j++)
clas[i].stu[j].id=j+1;
}
}
void getscore()
{int i,j;
for(i=1;i<8;i++)
for(j=1;j<13;j++)
{printf("请输入%d%d的成绩:\n",i,j);
scanf("%d",&clas[i].stu[j].score);
while((clas[i].stu[j].score<50||clas[i].stu[j].score>100)==1)
{
printf("请重新输入%d%d的成绩:\n",i,j);
scanf("%d",&clas[i].stu[j].score);}
}
void cran()
{int i,j,l,k;
for(i=1;i<8;i++)
{
struct cs t[i];
for(j=1;j<12;j++)
{
l=j;
for(k=j+1;k<13;k++)
if(clas[i].stu[k].score>clas[i].stu[l].score)
l=k;
t[i]=clas[i].stu[l];clas[i].stu[l]=clas[i].stu[k];clas[i].stu[k]=t[i];
}
}
for(i=1;i<8;i++)
for(j=1;j<13;j++)
clas[i].stu[j].crang=j;
printf("请输入学号:\n");
scanf("%d%j",&i,&j);
printf("%d%d在班级中的排名是%d",clas[i].stu[j].crang);
}
void main()
{id();
getscore();
cran();}
搜索更多相关主题的帖子: 排名 学生 
2010-07-17 16:17
qweewqazsx
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-7-16
得分:0 
部分代码如上 但编译不成 还有部分功能未能编程 请高手帮助
2010-07-17 16:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-313265-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017161 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved