学习日志 (十五)

结构体基本概念

结构体属于用户自定义的数据类型允许用户存储不同的数据类型

结构体定义和使用

语法:struct结构体名(结构体成员列表);

通过结构体创建变量的方式有三种:

1.struct 结构体名 变量名

2.struct 结构体名 变量名={成员1值, 成员2值 ..}

3.定义结构体时顺便创建变量

创建结构体变量时可以省略struct,定义结构体的时候不可以省略结构体变量通过"."访问成员

结构体数组

作用:将自定义的结构体放入数组中便于维护

语法:struct结构体名数组名[元素个数]={{},{},{}};

结构体和指针

作用:通过指针访问结构体成员;

利用操作符>通过结构体指针访问结构体属性。

结构体指针通过﹣>访问结构体成员

做错的题目:成绩排序

输入n个学生的姓名和三科(编程,数学,英语)的成绩,按照三科的总分从高到低排序输出姓名和总分,如果总分相同,姓名按照字典序排序输出。

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

structstudent{

charname[101];

intscore1,score2,score3,total;

};

intcompare(constvoid*a,constvoid*b) {

student*studentA=(student*)a;

student*studentB=(student*)b;

if(studentA->total>studentB->total)

return-1;

elseif(studentA->total<studentB->total)

return1;

else{

returnstrcmp(studentA->name,studentB->name);

}

}

intmain() {

intn;

scanf("%d",&n);

student students[n];

for(inti=0;i<n;i++) {

scanf("%s%d%d%d",students[i].name,&students[i].score1,&students[i].score2,&students[i].score3);

students[i].total=students[i].score1+students[i].score2+students[i].score3;

}

qsort(students,n,sizeof(student),compare);

for(inti=0;i<n;i++) {

printf("%s %d\n",students[i].name,students[i].total);

}

return0;

}

全部评论

相关推荐

2024-12-06 16:58
西北工业大学 Java
给份工作好不好:是“已结束”了然后又被捞出来了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务