c语言用指针,内容:从键盘输入三个整数a,b,c,按从大到小顺序输出,用指针方式实现数据交换
时间: 2024-05-07 07:19:14 浏览: 65
下面是使用指针实现从大到小排序的C语言代码:
```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` 函数中,我们先从键盘输入三个整数 `a`、`b` 和 `c`。然后通过比较大小,使用 `swap` 函数交换它们的值,使得 `a` 存储最大的整数,`c` 存储最小的整数。最后输出排序后的结果。
相关问题
用c语言写从键盘上输入三个整数a,b,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);
int* pa = &a;
int* pb = &b;
int* pc = &c;
sort(pa, pb, pc);
printf("排序后的结果为:%d %d %d\n", *pa, *pb, *pc);
return 0;
}
```
和 C++ 的实现类似,这里也定义了 `swap` 和 `sort` 两个函数,其中 `swap` 函数用来交换两个整数的值,`sort` 函数则是通过比较大小,调用 `swap` 函数来实现对三个整数的排序。在 `main` 函数中,首先输入三个整数,然后分别将它们的地址赋给指针变量 `pa`、`pb`、`pc`,最后调用 `sort` 函数对它们进行排序,输出结果即为排序后的三个数。
用c语言从键盘上输入三个整数a,b,c的值,要求用指针变量作为函数参数,通过函数调用实现对三个数按从大到小顺序排序。
好的,下面是示例代码:
```c
#include <stdio.h>
void sort(int* a, int* b, int* c) {
if (*a < *b) {
int temp = *a;
*a = *b;
*b = temp;
}
if (*a < *c) {
int temp = *a;
*a = *c;
*c = temp;
}
if (*b < *c) {
int temp = *b;
*b = *c;
*c = temp;
}
}
int main() {
int a, b, c;
printf("请输入三个整数: ");
scanf("%d %d %d", &a, &b, &c);
sort(&a, &b, &c);
printf("按从大到小排序的结果为: %d %d %d\n", a, b, c);
return 0;
}
```
这段代码中,我们定义了一个 `sort` 函数,它接受三个指针作为参数,用来指向需要排序的三个整数。在函数内部,我们使用冒泡排序的思想,将三个数按从大到小进行排序。
在 `main` 函数中,我们先从键盘上输入三个整数,然后调用 `sort` 函数对它们进行排序。最后输出排序后的结果。
阅读全文