1struct E{
}buf[101]; E相当于int buf 相当于a
cmp(buf a,buf b)这种写法就是错的 buf相当于是一个实例 而E才是是一个类型
2strcmp返回只是判断 而不能拿来用具体的判断
3N为0的情况要考虑到,在最后输入0 0就是结束输入 当N=0是,程序结束
4题目的意思理解错了
注意是当名字相同是考虑学号,比较学号它比较小,可以用数字,也可以用字符串。当比较长时用字符串比较合适。
当成绩相同时考虑学号比较 这些是放在各自定义排序的函数规则里面。
5sort()里面传递的是指针,而不是具体的结构体成员,所以是要传递数组的首地址
6学号很长的话定义成字符串比较合适,学号和名字作为字符串形式 在结构体数组里面作为成员注意一定是字符数组的形式
调用的时候就是buf[i].id 注意不是buf.id[i]这种写法是错误的
7比较名字的时候,if里用了strcmp,外面又用了strcmp,用一个变量tmp替换更好,这样函数就只会调用一次了。毕竟比较也是要时间的。
8名字不相等是strcmp(a.name,b.name)!=0 注意不要在cmp里面写成strcmp(a.name,b.name)<0
<0表示前者字典序号小,大于0表示前者字典序号大
9字符串按升序的话,是return tmp<0;。一开始所有的都没有
10C只是排序类型,而不是第几个case