用简单的c语言编写采用指针变量作为形参,编写实现两个整数交换的自定义函数swap(),在主函数中输入三个整数,调用数据交换函数将他们按从大到小的顺序排序后输出。
时间: 2024-02-26 21:57:03 浏览: 130
好的,以下是代码实现:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a, b, c;
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
if (a < b) swap(&a, &b);
if (a < c) swap(&a, &c);
if (b < c) swap(&b, &c);
printf("从大到小排序后为:%d %d %d\n", a, b, c);
return 0;
}
```
在这个程序中,我们定义了一个 `swap()` 函数,它接受两个指针变量作为参数,用于交换这两个指针所指向的变量的值。
在 `main()` 函数中,我们输入三个整数,并通过若干次调用 `swap()` 函数将它们按照从大到小的顺序排序。最后,我们输出排序后的结果。
注意,在调用 `swap()` 函数时,我们传递了变量的地址而非变量本身。这是因为 `swap()` 函数需要修改这些变量的值,只有通过地址才能正确地访问和修改它们。
相关问题
使用C语言采用指针变量作为形参,编写一个实现两个整数交换的函数。在主函数中输入三个整数,调用数据交换函数将他们按从大到小的顺序排序后输出。
好的,我可以帮你解决这个问题。
以下是代码实现:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void sort(int *a, int *b, int *c) {
if (*a < *b) {
swap(a, b);
}
if (*a < *c) {
swap(a, c);
}
if (*b < *c) {
swap(b, c);
}
}
int main() {
int a, b, c;
printf("请输入三个整数:\n");
scanf("%d %d %d", &a, &b, &c);
sort(&a, &b, &c);
printf("从大到小排序后为:%d %d %d\n", a, b, c);
return 0;
}
```
这个程序中,我们定义了两个函数,`swap` 和 `sort`。`swap` 函数用于交换两个整数的值,`sort` 函数用于将三个整数按从大到小排序。在 `sort` 函数中,我们使用了 `swap` 函数来进行值的交换。
在主函数中,我们先输入三个整数,然后调用 `sort` 函数将它们排序,最后输出排序后的结果。
注意,在调用函数时,我们使用了指针变量作为实参,这样可以直接修改实参的值。同时,为了让函数具有更好的可读性和可维护性,我们使用了指针变量作为形参,这样可以避免在函数内部进行数值拷贝,提高程序的效率。
用C语言采用指针变量作为形参,编写一个实现两个整数交换的函数。在主函数中输入三个整数,调用数据交换函数将他们按从大到小的顺序排序后输出。
好的,以下是代码实现:
```c
#include <stdio.h>
// 定义函数swap,用于交换两个整数
swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 定义函数sort,用于将三个整数按从大到小的顺序排序
void sort(int *a, int *b, int *c) {
if (*a < *b) {
swap(a, b);
}
if (*a < *c) {
swap(a, c);
}
if (*b < *c) {
swap(b, c);
}
}
int main() {
int a, b, c;
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
// 调用sort函数将三个整数排序
sort(&a, &b, &c);
printf("排序后的结果为:%d %d %d\n", a, b, c);
return 0;
}
```
运行结果:
```
请输入三个整数:5 2 9
排序后的结果为:9 5 2
```
阅读全文