C语言程序问题求解啦~
这是两个模块,求每个模块函数文字配合功能详细的解说,不太懂谢谢各位大佬麻烦了排序模块和删除模块...
这是两个模块,求每个模块函数文字配合功能详细的解说,不太懂谢谢各位大佬麻烦了
排序模块和删除模块 展开
排序模块和删除模块 展开
1个回答
展开全部
一、排序模块,就只是根据用户输入数字(1或者2),执行后面降序排列或者升序排列。
其中冒泡排序操作的对象是结构数组变量students。同类型的结构变量可以直接赋值,所以students[i]=students[j],就相当于执行了所有成员变量的赋值语句。
而比较这代码是直接用字符串成员num的字符串值做大小比较。strcmp就是字符串比较的函数。比如上代码strcmp(students[i].num,students[j].num); 如果两个字符串students[i].num和students[j].num,相等则返回0,前大于后则返回正数,前小于后则返回负数。
冒泡排序的时候就是按照成员num字符串值大小排序的。
二、删除模块,单从你给的代码看,不是真正意义删除,只是通过比较,在students数组中找到对应的元素,然后将后面的元素依次往前移动(后面元素覆盖前面,实现删除效果,但是数组个大小没有改变,所以这代码又用一个变量k做计数)。
其中冒泡排序操作的对象是结构数组变量students。同类型的结构变量可以直接赋值,所以students[i]=students[j],就相当于执行了所有成员变量的赋值语句。
而比较这代码是直接用字符串成员num的字符串值做大小比较。strcmp就是字符串比较的函数。比如上代码strcmp(students[i].num,students[j].num); 如果两个字符串students[i].num和students[j].num,相等则返回0,前大于后则返回正数,前小于后则返回负数。
冒泡排序的时候就是按照成员num字符串值大小排序的。
二、删除模块,单从你给的代码看,不是真正意义删除,只是通过比较,在students数组中找到对应的元素,然后将后面的元素依次往前移动(后面元素覆盖前面,实现删除效果,但是数组个大小没有改变,所以这代码又用一个变量k做计数)。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询