- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
这个应该可以了,这个我试过了,很成功,不过还有缺点,那就是没用“结构”你再看看,不行这里有个用结构的,不过我不会改,要是这个不行就把那个原版的给你弄过去,你自己看看能改不……明白??
#includestdio.h
#define stu 50
#define course 2
void input(long num[],int score[][course],int n);
void getsum(int score[][course],int n,int sum[]);
void sort(long num[],int score[][course],int n,int sum[]);
void gcj(long num[],int score[][course],int n,int sum[],int x);
void print(long num[],int score[][course],int n,int sum[]);
int search(long num[],int n,long x);
main()
{
int n,score[stu][course],sum[stu],pos;
long num[stu],x;
printf(please enter the total number of the students(n=50):);
scanf(%d,n);
printf(enter No. and score as: mt wl\n);
input(num,score,n);
getsum(score,n,sum);
print(num,score,n,sum);
sort(num,score,n,sum);
printf(按总分排名:\n);
print(num,score,n,sum);
gcj(num,score,n,sum,0);
printf(按数学成绩排名:\n);
print(num,score,n,sum);
gcj(num,score,n,sum,1);
printf(按物理成绩排名:\n);
print(num,score,n,sum);
printf(please enter searching number:);
scanf(%ld,x);
pos=search(num,n,x);
if(pos!=-1)
{
printf(position:\t No\t mt\t wl\t sum\n);
printf(%8d\t%4ld\t%4d\t%4d\t%5d\t,pos+1,num[pos],score[pos][0],score[pos][1],sum[pos]);
}
else
printf(not found!\n);
}
void input(long num[],int score[][course],int n)
{
int i,j;
for(i=0;in;i++)
{
scanf(%ld,num[i]);
for(j=0;jcourse;j++)
scanf(%d,score[i][j]);
}
}
void getsum(int score[][course],int n,int sum[])
{
int i,j;
for(i=0;in;i++)
{
sum[i]=0;
for(j=0;jcourse;j++)
sum[i]=sum[i]+score[i][j];
}
}
void sort(long num[],int score[][course],int n,int sum[])
{
int i,j,k,m;
int temp1;
long temp2;
for(i=0;in-1;i++)
{
k=i;
for(j=i+1;jn;j++)
if(sum[j]sum[k])
k=j;
if(k!=i)
{
temp1=sum[k]; sum[k]=sum[i]; sum[i]=temp1;
temp2=num[k]; num[k]=num[i]; num[i]=temp2;
for(m=0;mcourse;m++)
{
temp1=score[k][m];
score[k][m]=score[i][m];
score[i][m]=temp1;
}
}
}
}
void gcj(long num[],int score[][course],int n,int sum[],int x)
{
int i,j,k,m;
i
文档评论(0)