用c语言编程?

 我来答
小黑哎啊
科技发烧友

2020-02-27 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:1642
采纳率:74%
帮助的人:362万
展开全部

#include <stdio.h>

#include<string.h>

struct st{//定义一个结构体 

char a[18];//姓名 

char b[17];//性别 

int x;//下面是3门成绩 

int y;

int z;

};

int main()

{

struct st s[11];//结构体的引用,数组s中的每一单位都拥有结构体的5个成员; 

char d[12];

int n[11],k=0,t;

for(int i=0;i<10;i++)

{

scanf("%s%s%d%d%d",s[i].a,s[i].b,&s[i].x,&s[i].y,&s[i].z);

}

for(int i=0;i<10;i++)

{

n[k++]=s[i].x+s[i].y+s[i].z;//10名同学的总成绩分别储存在数组n中; 

}

for(int i=0;i<10;i++)//冒泡排序 

{

for(int j=0;j<10-i-1;j++)

{

if(n[j]<n[j+1])//如果if条件成立执行下面的语句; 

{

t=n[j];

n[j]=n[j+1];//总成绩排序 

n[j+1]=t;

strcpy(d,s[j].a);

strcpy(s[j].a,s[j+1].a);//名字交换; 

strcpy(s[j+1].a,d);

strcpy(d,s[j].b);

strcpy(s[j].b,s[j+1].b);//性别交换 

strcpy(s[j+1].b,d);

t=s[j].x;

s[j].x=s[j+1].x;//下面是三门成绩的交换; 

s[j+1].x=t;

t=s[j].y;

s[j].y=s[j+1].y;

s[j+1].y=t;

t=s[j].z;

s[j].z=s[j+1].z;

s[j+1].z=t;

}

}

}

printf("\n");

for(int i=0;i<10;i++)

{

printf("%s %s %d %d %d\n",s[i].a,s[i].b,s[i].x,s[i].y,s[i].z);

}

return 0; 

}

希望能帮到你,望采纳;

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式