用c语言写有三个整数xyz,设置三个指针变量p1p2p3,分别指向xyz,然后通过指针变量使xyz三个变量交换顺序,即原来的x得值给y,把y的值给z,z的值给x。xyz的原值由键盘输入,要求输出xyz的原值和新值
时间: 2024-03-08 18:49:40 浏览: 21
以下是C语言代码实现:
```c
#include <stdio.h>
int main() {
int x, y, z;
printf("请输入三个整数:");
scanf("%d %d %d", &x, &y, &z);
printf("原始值:x=%d, y=%d, z=%d\n", x, y, z);
int *p1 = &x, *p2 = &y, *p3 = &z;
int temp = *p1;
*p1 = *p3;
*p3 = *p2;
*p2 = temp;
printf("交换后:x=%d, y=%d, z=%d\n", x, y, z);
return 0;
}
```
以上代码中,使用了 `scanf()` 函数从键盘输入三个整数 `x`、`y`、`z`,并输出它们的原始值。接着,定义指针变量 `p1`、`p2`、`p3` 分别指向 `x`、`y`、`z`,并使用指针变量进行交换。最后输出交换后的结果。
需要注意的是,在使用 `scanf()` 函数时,需要使用 `&` 符号取得变量的地址,以便将输入的值存储到对应的变量中。
相关问题
用指针变量的方法c语言输入三个整数从小到大排序
好的,以下是一个使用指针变量的方法,实现输入三个整数从小到大排序的C语言代码示例:
```c
#include <stdio.h>
void sort(int *a, int *b, int *c) {
int temp;
if (*a > *b) {
temp = *a;
*a = *b;
*b = temp;
}
if (*a > *c) {
temp = *a;
*a = *c;
*c = temp;
}
if (*b > *c) {
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;
}
```
在这个代码中,我们首先定义了三个整数变量:a、b、c。然后,通过`scanf`语句,从用户输入中获取这三个整数的值。
接下来,我们定义了一个名为`sort`的函数,用于对三个数进行排序。这个函数有三个参数,分别是指向a、b、c三个变量的指针。在函数中,我们使用指针变量和临时变量temp来交换变量的值,实现了对三个数的排序。
最后,在主函数中,我们调用了`sort`函数,并将a、b、c三个变量的地址传递给了函数。最后,我们使用`printf`语句将排序后的结果输出到屏幕上。
需要注意的是,在调用`sort`函数时,我们需要传递a、b、c三个变量的地址,即使用`&`符号来取地址。
用函数和指针写一个判断输入三个整数中最小的数用C语言写
可以使用指针来实现查找最小值的功能,代码如下:
```c
#include <stdio.h>
void find_min(int a, int b, int c, int *min)
{
if (a <= b && a <= c) {
*min = a;
} else if (b <= a && b <= c) {
*min = b;
} else {
*min = c;
}
}
int main()
{
int a, b, c, min;
printf("请输入三个整数:");
scanf("%d%d%d", &a, &b, &c);
find_min(a, b, c, &min);
printf("最小值为:%d\n", min);
return 0;
}
```
在主函数中,我们定义了三个整型变量`a`、`b`、`c`和一个整型变量指针`min`。然后调用函数`find_min`,将三个整型变量的地址和整型变量指针`min`的地址传递给函数。在函数内部,通过比较三个整数的大小,将最小值赋值给指针所指向的变量`min`。最后在主函数中打印出最小值即可。