C语言,用指针方法编写两个函数。第一个函数,将 3 个整数按由小到大进行排序。在主函数中输入 3 个整数,通过调用该函数实现排序,再输出排序的结果。 第二个函数,若要实现将输入的 3 个字符串按由小到大进行排序,该如何编写(运行时输入的 3 个字 符串分别为“Student”,“C language”,“China”) ?
时间: 2024-03-14 22:43:49 浏览: 51
c代码-C语言三个数从小到大排序/输出: 任意输入 3 个整数,编程实现对这 3 个整数由小到大进行排序。 冒泡排序的动画 https://haokan.baidu.com/v?vid=8080732080990475789&pd=bjh&fr=bjhauthor&type=video
以下是 C 语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
void sort_int(int *a, int *b, int *c) {
int tmp;
if (*a > *b) {
tmp = *a;
*a = *b;
*b = tmp;
}
if (*b > *c) {
tmp = *b;
*b = *c;
*c = tmp;
}
if (*a > *b) {
tmp = *a;
*a = *b;
*b = tmp;
}
}
void sort_str(char **a, char **b, char **c) {
char *tmp;
if (strcmp(*a, *b) > 0) {
tmp = *a;
*a = *b;
*b = tmp;
}
if (strcmp(*b, *c) > 0) {
tmp = *b;
*b = *c;
*c = tmp;
}
if (strcmp(*a, *b) > 0) {
tmp = *a;
*a = *b;
*b = tmp;
}
}
int main() {
int a, b, c;
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
sort_int(&a, &b, &c);
printf("排序后的结果为:%d %d %d\n", a, b, c);
char *s1 = "Student";
char *s2 = "C language";
char *s3 = "China";
printf("请输入三个字符串:");
scanf("%s %s %s", s1, s2, s3);
sort_str(&s1, &s2, &s3);
printf("排序后的结果为:%s %s %s\n", s1, s2, s3);
return 0;
}
```
在这个代码实现中:
1. 对于整数排序,我们定义了一个 `sort_int` 函数,接收三个整数的指针,通过比较和交换,将三个整数按由小到大进行排序。
2. 对于字符串排序,我们定义了一个 `sort_str` 函数,接收三个字符串的指针,通过比较和交换,将三个字符串按由小到大进行排序。需要注意的是,我们使用了 `strcmp` 函数来比较两个字符串的大小。
3. 在主函数中,我们首先输入三个整数和三个字符串,然后分别调用 `sort_int` 和 `sort_str` 函数进行排序,最后输出排序后的结果。
两个函数的实现方式基本相同,只是比较和交换的方式不同。对于整数,我们可以直接使用 `<` 或 `>` 运算符比较大小;对于字符串,我们需要使用 `strcmp` 函数。交换两个整数的值可以通过使用中间变量来实现;交换两个字符串的值需要使用指向指针的指针来交换。需要注意的是,对于指向字符串的指针,我们需要使用 `strcpy` 函数来交换它们所指向的字符串。
阅读全文