C语言程序设计:排序与交换函数实现

需积分: 9 6 下载量 57 浏览量 更新于2024-11-24 收藏 10KB TXT 举报
"该资源包含了谭浩强版C程序设计课程的课后习题答案,主要涉及了指针、数组、字符串操作以及排序算法的应用。练习题包括了对整数和字符串的排序,如10.1题用指针交换整数实现排序,10.2题使用strcmp函数比较字符串并交换,以及10.3题处理整型数组输入、找出最大最小值并输出。" 在C语言中,指针是重要的数据类型,它能够存储变量的地址,使得我们可以间接访问和修改这些变量的值。在提供的代码中,可以看到多个关于指针的使用示例: 10.1 题目: 这个程序旨在通过指针交换三个整数n1, n2, n3的值,以实现从小到大的排序。首先,定义了三个整型变量n1, n2, n3以及三个指向整型的指针p1, p2, p3。通过`scanf`函数读取用户输入的三个整数,并使用指针将它们的地址分别赋值给p1, p2, p3。接着,使用if语句和自定义的`swap`函数进行比较和交换。`swap`函数接受两个指针作为参数,通过临时变量p交换它们所指向的值。 10.2 题目: 这个程序用于实现字符串的排序。与10.1题类似,这里也定义了三个指向字符数组的指针str1, str2, str3,并使用`scanf`读取用户输入的三个字符串。然后,使用`strcmp`函数比较字符串的字典序,如果某个字符串大于另一个,就调用`swap`函数交换它们的值。`swap`函数在这个例子中需要处理字符数组,所以它创建了一个临时字符数组p,用来存储一个字符串的副本,再进行交换操作。 10.3 题目: 这部分代码展示了如何处理整型数组,包括输入数组、找出最大最小值以及输出数组。`input`函数用于接收用户输入的10个整数并存入数组`number`中。`max_min_value`函数则遍历数组找到最大值和最小值的地址,然后交换数组的第一个元素(即最小值)和最后一个元素(初始时设为最大值)。最后,`output`函数负责打印整个数组的值。 以上内容展示了C语言中基本的指针操作、数组处理、输入输出以及排序算法的实现。通过这些练习,学习者可以深入理解C语言的核心概念,并提升编程能力。