c语言对成绩排序函数 C语言学生成绩排序

C语言怎么进行成绩的排序?

#includestdio.h

成都创新互联是专业的龙州网站建设公司,龙州接单;提供成都做网站、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行龙州网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

int main()

{

int a[10],i,j,t,k;

printf("请以次输入10个学生的成绩:");

for(i=0;i10;i++)scanf("%d",a[i]);

for(i=0;i9;i++)

{

k=i;

for(j=i;j10;j++)

if(a[j]a[k])k=j;

if(i!=k)

{

t=a[i];

a[i]=a[k];

a[k]=t;

}

}

printf("由高到低排序输出成绩:\n");

for(i=0;i10;i++)

printf("%d\n",a[i]);

return 0;

}

学生成绩排序 c语言设计

#includeiostream

#includestring

#includeiomanip

#includefstream

using namespace std;

int n; //n个学校

int m; //m个男子项目

int w; //w个女子项目

struct pro //表示项目的结构体

{

string name; //项目名称

int snum[6]; //前5名学校的编号

}p[21];

struct school //表示学校的结构体

{

int num;

string name; //学校名称

int score; //学校总分

int male; //男子总分

int female; //女子总分

}sch[21];

int integral[5]={7,5,3,2,1};//前五名得分

void input()

{

int i,j,y,x;

printf("输入学校数目:");

y=0;

while(1)

{

scanf("%d",n);

if(n=1n=20)y=1;

if(y)break;

else printf("输入数据有误,请重新输入:");

}

for(i=1;i=n;i++)

{

printf("输入第%d个学校的名称:",i);

cinsch[i].name;

sch[i].score=0;

sch[i].female=0;

sch[i].male=0;

sch[i].num=i;

}

printf("输入男子项目数和女子项目数:");

y=0;

while(1)

{

scanf("%d%d",m,w);

if(m=20m=1w=20w=1)y=1;

if(y)break;

else printf("输入数据有误,请重新输入:");

}

for(i=1;i=m+w;i++)

{

printf("输入第%d个项目的名称:\n",i);

cinp[i].name;

printf("输入第%d个项目的前5名的学校编号:\n",i);

for(j=1;j=5;j++)

{

y=0;

while(1)

{

scanf("%d",x);

if(x=1x=20)y=1;

if(y)break;

else printf("输入数据有误,请重新输入:");

}

p[i].snum[j]=x;

sch[x].score+=integral[j-1];

if(i=m)sch[x].male+=integral[j-1];

else sch[x].female+=integral[j-1];

}

}

}

void print(int i)

{

coutsch[i].numsetw(10)sch[i].namesetw(8)sch[i].scoresetw(9)

sch[i].malesetw(10)sch[i].femaleendl;

}

void bianhao() //按编号排序

{

int i,j;

school t;

for(i=1;in;i++)

{

for(j=i;j=n;j++)

if(sch[i].numsch[j].num)

{t=sch[i];sch[i]=sch[j];sch[j]=t;}

}

printf("\n按编号排列:\n");

printf("编号 学校名称 总分 男子总分 女子总分\n");

for(i=1;i=n;i++)

print(i);

}

void zongfen() //按学校总分排序

{

int i,j;

school t;

for(i=1;in;i++)

{

for(j=i;j=n;j++)

if(sch[i].scoresch[j].score)

{t=sch[i];sch[i]=sch[j];sch[j]=t;}

}

printf("\n按学校总分排列:\n");

printf("编号 学校名称 总分 男子总分 女子总分\n");

for(i=1;i=n;i++)

print(i);

ofstream fout;

fout.open("运动会分数统计.txt");

fout"编号 学校名称 总分 男子总分 女子总分"endl;

for(i=1;i=n;i++)

{foutsch[i].numsetw(13)sch[i].namesetw(8)sch[i].scoresetw(9)

sch[i].malesetw(10)sch[i].femaleendl; }

fout.close();

}

void malezf() //按学校男总分排序

{

int i,j;

school t;

for(i=1;in;i++)

{

for(j=i;j=n;j++)

if(sch[i].malesch[j].male)

{t=sch[i];sch[i]=sch[j];sch[j]=t;}

}

printf("\n按学校男子总分排列:\n");

printf("编号 学校名称 总分 男子总分 女子总分\n");

for(i=1;i=n;i++)

print(i);

}

void femalezf() //按学校女总分排序

{

int i,j;

school t;

for(i=1;in;i++)

{

for(j=i;j=n;j++)

if(sch[i].femalesch[j].female)

{t=sch[i];sch[i]=sch[j];sch[j]=t;}

}

printf("\n按学校女子总分排列:\n");

printf("编号 学校名称 总分 男子总分 女子总分\n");

for(i=1;i=n;i++)

print(i);

coutendl;

}

void cxsch() //查询学校信息

{

int i,y,s;

printf("输入需要查询的学校编号:");

y=0;

while(1)

{

scanf("%d",s);

if(s=1s=n)y=1;

if(y)break;

else printf("输入数据有误,请重新输入:");

}

printf("该学校相关信息:\n");

printf("编号 学校名称 总分 男子总分 女子总分\n");

for(i=1;i=n;i++)

{

if(sch[i].num==s)

{

print(i);

break;

}

}

coutendl;

}

void cxxm() //查询项目信息

{

int i,y,s;

printf("输入需要查询的项目编号:");

y=0;

while(1)

{

scanf("%d",s);

if(s=1s=n)y=1;

if(y)break;

else printf("输入数据有误,请重新输入:");

}

coutp[s].name"前5名学校编号及名称为:"endl;

printf("名次 编号 学校名称\n");

for(i=1;i=5;i++)

cout" "i" "p[s].snum[i]setw(12)sch[ p[s].snum[i] ].nameendl;

coutendl;

}

void solve() //菜单函数

{

int z;

while(1)

{

printf("\n选择您需要的操作(选择序号):\n");

printf("1.按学校编号排序输出\n");

printf("2.按学校总分排序输出\n");

printf("3.按学校男总分排序输出\n");

printf("4.按学校女总分排序输出\n");

printf("5.查询某个学校成绩\n");

printf("6.查询某个项目成绩\n");

printf("7.结束\n\n");

scanf("%d",z);

if(z==1)bianhao();

if(z==2)zongfen();

if(z==3)malezf();

if(z==4)femalezf();

if(z==5)cxsch();

if(z==6)cxxm();

if(z==7)break;

}

}

int main() //主函数

{

input();

solve();

return 0;

}

C语言成绩排序

#include bits/stdc++.h

using namespace std;

struct data{

char st1[233],st2[233];

double a,b,c;

}a[233];

int mycomp(const dataa,const datab){

return((a.a+a.b+a.c)(b.a+b.b+b.c));

}

int main(){   

int n=1;

while (scanf("%s%s%lf%lf%lf",a[n].st1,a[n].st2,a[n].a,a[n].b,a[n].c)!=EOF)

  n++;

n--;

sort(a+1,a+n+1,mycomp);

for (int i=1;i=n;i++)

printf("%s %s %.2lf %.2lf %.2lf\n",a[i].st1,a[i].st2,a[i].a,a[i].b,a[i].c);

}

c语言成绩排序,做完微信红包

#include "stdio.h"

#include stdlib.h

#include string.h

#include "time.h"

struct abcd{

char ID[11],name[17];

int s1,s2,s3,s4,s5;

double ave;

struct abcd *next;

};

void inp(struct abcd (*p)[45]){

int i,j,k,t;

char id[11]="0000000000";

for(i=0;i4;i++){

for(j=0;j45;j++){

if(++id[9]'9')

for(k=9;k0;k--)

id[k]-=10,id[k-1]++;

strcpy(p[i][j].ID,id);

for(t=0,k=rand()%16;k;k--)

p[i][j].name[t++]=rand()%26+'A';

p[i][j].name[t]='\0';

p[i][j].s1=rand()%101;

p[i][j].s2=rand()%101;

p[i][j].s3=rand()%101;

p[i][j].s4=rand()%101;

p[i][j].s5=rand()%101;

}

}

}

void average(struct abcd (*p)[45]){

int i,j;

for(i=0;i4;i++)

for(j=0;j45;p[i][j].ave=(p[i][j++].s1+p[i][j].s2+p[i][j].s3+p[i][j].s4+p[i][j].s5)/5.0);

}

void selsort(struct abcd (*p)[45]){//4个班统一选择排序

int i,j,k,t;

struct abcd q;

for(t=0;t4;t++)

for(i=0;i45;i++){

for(k=i,j=k+1;j45;j++)

if(p[t][k].avep[t][j].ave)

k=j;

if(k!=i)

q=p[t][k],p[t][k]=p[t][i],p[t][i]=q;

}

}

void bubsort(struct abcd (*p)[45]){//4个班统一冒泡排序

int i,j,t;

struct abcd q;

for(t=0;t4;t++)

for(i=0;i45;i++)

for(j=0;j44;j++)

if(p[t][j].avep[t][j+1].ave)

q=p[t][j],p[t][j]=p[t][j+1],p[t][j+1]=q;

}

void getlink(struct abcd (*p)[45],struct abcd *x){//弄成链表

int i,j,k,t;

struct abcd q;

for(t=i=0;i4;i++)//把4个班的成绩拷贝到临时数组x中

for(j=0;j45;x[t++]=p[i][j++]);

for(i=0;it;i++){//对数组x降序排序

for(k=i,j=k+1;jt;j++)

if(x[k].avex[j].ave)

k=j;

if(k!=i)

q=x[k],x[k]=x[i],x[i]=q;

}

for(i=1;it;x[i-1].next=x+i++);//把数组p搞成单链表

x[i-1].next=NULL;

}

int main(int argc,char *argv[]){

struct abcd c[4][45],t[4*45],*p;

int k;

srand((unsigned)time(NULL));

inp(c);

average(c);

bubsort(c);

selsort(c);//这是脱了裤子FP,无论用什么方法排序结果是一样的,不懂为何这么出题

getlink(c,t);

printf("----------Look at...----------\n");

for(k=0,p=t;p;p=p-next)//将链表中的值输出

printf(++k%15 ? "%5.1f" : "%5.1f\n",p-ave);

if(k%10)

printf("\n");

return 0;

}

运行样例:

这种题打字太多……


当前题目:c语言对成绩排序函数 C语言学生成绩排序
URL网址:http://scjbc.cn/article/hhhjpc.html

其他资讯