有三个整形变量i、j、k,请C语言编写程序,设置三个指针变量p1、p2、p3,分别指向i、j、k。然后通过指针变量使i、j、k三个变量的值顺序交换,即原来i的值赋给j,把j的原值赋给k,把k的原值赋给i。i、j、k的原值由键盘输入,要求输出i、j、k的原值和新值(无需写子函数)。
时间: 2023-07-10 11:17:03 浏览: 132
好的,以下是代码实现:
```c
#include <stdio.h>
int main()
{
int i, j, k;
int *p1, *p2, *p3;
printf("请输入三个整数:\n");
scanf("%d%d%d", &i, &j, &k);
p1 = &i;
p2 = &j;
p3 = &k;
int temp = *p1;
*p1 = *p2;
*p2 = *p3;
*p3 = temp;
printf("原值:i=%d, j=%d, k=%d\n", k, i, j);
printf("新值:i=%d, j=%d, k=%d\n", i, j, k);
return 0;
}
```
程序执行时,会要求输入三个整数,然后通过指针变量顺序交换三个变量的值,并输出原值和新值。注意,程序中的三个指针变量p1、p2、p3分别指向i、j、k,而变量temp用于暂存i的值,避免被覆盖。
相关问题
c语言 有3个整型变量i,j,k。请编写一个程序,设置 3个指针变量 p1, p2, p3,分别 指向i, j, k,然后通过指针变量使i, j, k 3个变量的值顺序交换,即原来 i 的值赋给 j ,把 j的原值赋给k,把k的原值赋给i。i, j, k的原值由键盘输入,要求输出 i, j, k的原值和 新值。
下面是实现该程序的 C 语言代码:
```
#include <stdio.h>
int main()
{
int i, j, k;
int *p1, *p2, *p3, temp;
printf("请输入 i, j, k 三个整数:");
scanf("%d%d%d", &i, &j, &k);
p1 = &i;
p2 = &j;
p3 = &k;
// 交换 i, j, k 三个变量的值
temp = *p1;
*p1 = *p2;
*p2 = *p3;
*p3 = temp;
// 输出原值和新值
printf("i 的原值为:%d,新值为:%d\n", temp, i);
printf("j 的原值为:%d,新值为:%d\n", *p1, j);
printf("k 的原值为:%d,新值为:%d\n", *p2, k);
return 0;
}
```
运行程序后,会要求用户输入 i, j, k 三个整数。然后程序会通过指针变量 p1, p2, p3 分别指向 i, j, k。接着程序交换了 i, j, k 三个变量的值,并输出它们的原值和新值。
用c语言编程实现有三个整型变量i,j,k,设置三个指针变量p1,p2,p3,分别指向i,j,k,然后通过指针变量使i,j,k三个变量的值顺序交换,即把i的原值赋给j,把j的值赋给k,把k的原值赋给i。要求输入i,j,k的原值和新值
下面是用C语言编写的程序实现上述要求:
```
#include <stdio.h>
int main() {
int i, j, k;
int *p1, *p2, *p3;
int new_i, new_j, new_k;
// 获取i、j、k的原始值
printf("请输入i、j、k的原始值,用空格分隔:");
scanf("%d %d %d", &i, &j, &k);
// 分别将p1、p2、p3指向i、j、k
p1 = &i;
p2 = &j;
p3 = &k;
// 交换i、j、k的值
int temp = *p1;
*p1 = *p2;
*p2 = *p3;
*p3 = temp;
// 获取i、j、k的新值
new_i = *p1;
new_j = *p2;
new_k = *p3;
// 输出结果
printf("i原值:%d,新值:%d\n", i, new_i);
printf("j原值:%d,新值:%d\n", j, new_j);
printf("k原值:%d,新值:%d\n", k, new_k);
return 0;
}
```
程序中先定义了三个整型变量i、j、k和三个指针变量p1、p2、p3。然后通过scanf函数获取i、j、k的原始值,并分别将p1、p2、p3指向i、j、k。接下来通过指针变量交换i、j、k的值,并获取它们的新值。最后使用printf函数输出i、j、k的原始值和新值。
使用该程序时,需要在命令行中输入i、j、k的原始值,程序会自动计算新值并输出结果。
阅读全文