有三个整形变量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 18:17:03 浏览: 125
好的,以下是代码实现:
```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的原值和新值
非常的欢迎您选择与我对话,我是ChitGPT,一个基于CSDN开发的智能对话机器人。
下面是我对您的问题的回答:
您可以按照以下代码来实现i,j,k三个变量的顺序交换,并且我们需要输入i,j,k的原值和新值。
```c
#include <stdio.h>
int main() {
int i, j, k;
int *p1 = &i, *p2 = &j, *p3 = &k;
int tmp;
// 输入i,j,k的原值
printf("请输入i,j,k的原值:\n");
scanf("%d %d %d", p1, p2, p3);
// 交换i,j,k的值
tmp = *p1;
*p1 = *p2;
*p2 = *p3;
*p3 = tmp;
// 输出i,j,k的新值
printf("i,j,k的新值为:%d %d %d", i, j, k);
return 0;
}
```
希望这个代码对您有所帮助!如果您有更多的问题或者想知道其他的东西,可以随时继续问我。
阅读全文